[{"timestamp":"2026-11-10T13:00:57Z","commit_sha":"45868f4efeb6fb61639b19d54d7a2da72ed23fef","commit_message":"objdiff: build report by self-comparing built objects\n\nmakes our objdiff report's target/expected both the exact same .o file, with objdiff handling\nsubtracting code/data that's NON_MATCHING, solves the rodata issue of splat D_ syms vs anonymous C\nsyms not getting matched up\n\nalso updated objdiff_generate to allow the raw-unmigrated data/rodata/bss objects to get counted\nin report, so they can subtract from the total %\n(with exclusions for garbage splits, might need to mark more of them in the yaml though)\n\nmain issue with this setup is what happens if a non-matching commit is pushed which breaks match,\ncomparing non-matching vs non-matching wouldn't be helpful\nleft in our old objdiff report as a fallback, so should still be able to use decomp.dev to narrow\ndown any breaks","measures":{"fuzzy_match_percent":99.99997,"total_code":2878364,"matched_code":2878364,"matched_code_percent":100,"total_data":1334141,"matched_data":650073,"matched_data_percent":48.72596,"total_functions":6530,"matched_functions":6530,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":416,"complete_units":0}},{"timestamp":"2026-11-10T12:25:50Z","commit_sha":"c895786bfb8baba21327bd63769a060d0cad4a9c","commit_message":"bodyprog: add missing sym names (bodyprog data 46% -> 72%)\n\nrodata and bss still has some issues","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":195772,"matched_data_percent":49.554,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T11:07:05Z","commit_sha":"17acf99fd9386123dbb6f1a49e13fa6bab521d92","commit_message":"misc: division fixups 2","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T10:53:59Z","commit_sha":"aab324f92cc4a73db7f4a2f780f77d3caf456fbf","commit_message":"misc: division fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T10:24:38Z","commit_sha":"b122b2ffda8b77275cf751b0a544da1669ca9a3b","commit_message":"bodyprog: minor hack fixups, tag some unmarked hacks\n\nThink the build break was probably the map .c header changes btw, the\norder of the \"maps/xxx.h\" includes is pretty delicate atm","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T09:35:59Z","commit_sha":"3f6bd32a41342e5b9d3ab5f431fc835fd221135e","commit_message":"Revert \"Bodyprog: items headers\"\n\nThis reverts commit e99bf6d26e75ba7d406520a578db62409aa73e13.","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T08:02:59Z","commit_sha":"40986843050a7f59470db4adfcc1d68bf34f8198","commit_message":"Bodyprog: move and rename files","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T07:11:34Z","commit_sha":"6a081621692567a230e4deb2d71c63d6db790323","commit_message":"bodyprog: paperMapFlags, misc fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T05:28:14Z","commit_sha":"b92d710d45338f4d76e21c25135aebe79575e71d","commit_message":"Bodyprog: `D_800AFD05` -> `vibration`","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T05:06:59Z","commit_sha":"d929db542f7523b9bc174c9024e28f3be3eeea95","commit_message":"Bodyprog: add `items` folder","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T04:50:50Z","commit_sha":"30bbca3733f87242ddb7723ea96f08d7c8217f76","commit_message":"Bodyprog: player deobfuscation","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-10T04:37:45Z","commit_sha":"10c9a9396c3781bf92edbb5c1f3c4ed7bdb5fc79","commit_message":"Bodyprog: equipped player weapon info deobfuscation","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T19:56:55Z","commit_sha":"403039cffc0c84a0604efef95b1adfb4338c4721","commit_message":"characters: use ANIM_TIME_RANGE_CHECK in cat/groaner","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T19:19:34Z","commit_sha":"b2b858dfd9985680d517360262a2c1396f401bd6","commit_message":"maps: add s_PropsNpcPath and s_PropsMonsterCybil\n\nFixes up some s32 casts, and lets us keep fields only used by\nmonster-cybil separate from the rest of NPC fields (TODO: merge unused\nfields in s_PropsNpc back to u8[])","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T17:17:13Z","commit_sha":"3a6e1e2c561236f5c6d09a4f9ee61aae8cbbc3fd","commit_message":"monster_cybil: use Q12_ANGLE_ABS","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T17:10:31Z","commit_sha":"e54fba18f6b736c4a6fbc7a6556a1aae660c7b43","commit_message":"Misc todo/hack/anim-status fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T16:16:47Z","commit_sha":"406e505434bd9a8949dd32325ce620eaf02c9752","commit_message":"Bodyprog: demagicking","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T16:06:10Z","commit_sha":"9a958819ef23260bbdddd5da8179bf92f836495a","commit_message":"USA/JAP0 build fix","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T15:50:17Z","commit_sha":"25b5818515031eb412f14a8f4302afd9b940520a","commit_message":"misc: minor chunk idx fixups","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2872944,"matched_code_percent":99.82502,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T15:32:21Z","commit_sha":"e505ef3ef41ffb382c6ab03ff0c27255f8c7688f","commit_message":"Bodyprog: Harry anim data deobfuscation, math","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T13:45:10Z","commit_sha":"dd8dbb966a2689e4ba39945a09e50dd147ced14c","commit_message":"Bodyprog: organise macros","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T13:40:34Z","commit_sha":"904de951e8f2093cbf92873e58527d2296fd6ba3","commit_message":"maps: remove (float) hack from 6 funcs\n\nThese funcs all look nearly identical but use some different constants\ninside, map7_s03 also includes 3 copies of it, so probably not some\nshared .c\n\n(maybe some shared macro that would generate the function code with the\ngiven constants? eh, guess we'll see once more is deobfuscated\nthere)","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T12:04:30Z","commit_sha":"1a6333df0b01fa29d9d09436d6cc825bb3373edb","commit_message":"Bodyprog: misc. fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T11:09:27Z","commit_sha":"d5dbc5e7295e595b5d99dd4bbd208d19e6ebffbb","commit_message":"bodyprog: chunk idx fixups, add macros for combined XZ switches","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T10:00:27Z","commit_sha":"1a60ba2aff1dcf197369fa34614facba504f2cdf","commit_message":"Bodyprog: move world env macros and enums, misc. fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T08:38:48Z","commit_sha":"74ec2b015424ff585a0ac5a969adc83c8006de8d","commit_message":"bodyprog: add new PLAYER_IN_MAP_CHUNK macro, simplify chunk checks\n\nFound a different way to match the weird PLAYER_IN_MAP_CHUNK macro, with another weird\nmacro instead:\n\n    (((pos) / Q12(40.0f)) + (((pos) > Q12(0.0f)) ? 1 : -1))\n\nThe comment goes into it more, but this adds 1 if positive / subtracts 1 if negative to fix\nC's division making anything between -40 and 40 count as chunk 0 (making chunk 0 80 units\ninstead of 40 that every other chunk idx is)\n\nAdding that macro let us remove the odd PLAYER_IN_MAP_CHUNK checks, but this wouldn't\nactually be able to return 0 for any position, anything in chunk 0 would be returned as 1\n(and anything in positive indexes would be +1 of the actual index)\n\nOther terrain/IPD code does show chunk 0 being used though, so to make the checks consistent\nadded a workaround where the macro itself would add 1 to the index being checked\n(so we can use the macro like PLAYER_IN_MAP_CHUNK(0, 0), then the macro itself would add 1 to\nthose, and it can compare against result from MAP_CHUNK_IDX above)\n\nKinda weird but guess it makes sense for working around C's integer division issue.","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T06:48:40Z","commit_sha":"5a26ca1649f5d4388fabc610f5bf34af830fb958","commit_message":"Types: `q0_7` -> `1_7`","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-09T06:33:09Z","commit_sha":"916770ed530eed1367762e587bc909df5d98f929","commit_message":"Maps: refine docs, shorten particles source filenames","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T18:07:39Z","commit_sha":"9eae106925970f4b98e4791c24da46e0ba4f4f2a","commit_message":"maps: update particle_smoke / ufo comments","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T17:41:46Z","commit_sha":"bd6c6dfc84e248686d4ac54bb7509ab820b108f9","commit_message":"misc: minor fixups, update particle_fire/drool comments","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T16:18:03Z","commit_sha":"cd48ec144ee5d1fdc850042be2775f71d17f3fbc","commit_message":"Fix progress","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T16:15:08Z","commit_sha":"a199d5d17ae268996b418db113b4d0b0c9da7e48","commit_message":"Tidying pass, name 2 shared particle globals","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T12:28:23Z","commit_sha":"ecb1aea37f67079fc0e1364d26013551fe02bd62","commit_message":"bodyprog: add WorldEnv_IsWorldLit\n\nChecks seem common enough for another macro","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T12:22:49Z","commit_sha":"573302a26fd41630e7c9dc554b97fc99837613a5","commit_message":"bodyprog: add WorldEnv_IsFlashlightOn and WorldEnv_CanBeInDarkness","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T12:12:07Z","commit_sha":"38798ace38e3a5b206c67f9cabcc77b05bc05075","commit_message":"bodyprog: add WorldEnv_IsInDarkness / _IsFlashlightAllowed macros","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T11:46:35Z","commit_sha":"0e4b0d9aacb9b0daa4b5ffbd3d6b29c81568d54a","commit_message":"misc: range check fixups","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T11:21:46Z","commit_sha":"8eef2d5150cf1394470c174dc02522930faa3965","commit_message":"bodyprog: name s_WorldEnvPreset fields and enums\n\nMight be worth adding some macro to check the preset flags here, a\nlot of map code uses same checks against them","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T11:00:26Z","commit_sha":"c99d0fa02d59970bd69408911026af2c9305670d","commit_message":"Math: add `Q7_MULT` and `Q7_CLAMPED`","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T10:17:41Z","commit_sha":"57ee14ca07a643eaa57c953c2be6e6adaae72190","commit_message":"bodyprog: rename world env structs and fields\n\n- Renamed the existing `s_WorldEnvWork` to `s_WorldEnvRenderWork`, and\n  `s_SysWork_2388` to `s_WorldEnvWork`, `WorldEnv_XXX` to `WorldEnvRender_XXX`\n  also changed MapEnv names to WorldEnv for consistency\n\n- s_MapEffectsInfo -> s_WorldEnvPreset, and named fields related to these\n  presets and the blending between them\n\nSeems both structs relate to world environment / lighting / fog, `s_SysWork_2388`\nseemed to be the main game-side struct for these, which handles blending between\npreset changes and flashlight status, then WorldEnv_Update copied things over to\n`s_WorldEnvWork` (now `s_WorldEnvRenderWork`) for rendering\n\nThings like map event code only ever touched s_SysWork_2388, only that WorldEnv_Update\nfunc and some particle code seems to ever change RenderWork\n\n(theres a big comment block in bodyprog.yaml also described how there was a split between\nthe game code/render code for this too)\n\nTried thinking of some other names for s_SysWork_2388 but really best fit seemed\nlike what we were already using for the render side, so renamed that side to make\nit more obvious that it's just rendering related instead\n(some of the WorldEnvRender_XXX func names are kinda lengthy tho..)\n\nTODO: funcs in world_effects.c could be moved under WorldEnv_XXX,\neg. right now it has stuff like `Game_TurnFlashlightOn` which are changing s_WorldEnvWork\n(also the header for that C is currently map_effects.h instead of world_effects.h)","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T09:11:29Z","commit_sha":"46e7c810ce94817144e82f10b076142f3e641b04","commit_message":"Bodyprog: update `Sd_SfxPlay` calls","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T08:25:02Z","commit_sha":"4312b857143ed33e25c5f3b1be04504a7b8d32de","commit_message":"Math: remove `FP_STICK`, add `Q7`\n\n`AXIS_DEADZONE` and SFX volumes can use this macro.","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T08:06:19Z","commit_sha":"d20c7258c73283acc66171e2881f1a33efe8743b","commit_message":"bodyprog/maps: flatten some structs/unions\n\nRemoved union from s_MapEffectsInfo, replaced with four plain u8 fields.\n\nReplace the bits/bits32/flags union on air screamer field_14C with a\nplain u32\n\nProbably still other unions that can be flattened too","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T07:35:19Z","commit_sha":"3eb4f17199a2967485b36abc99494aba98c9b671","commit_message":"Bodyprog: document `Pad_` input macros","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T07:18:23Z","commit_sha":"a460663832eec8a9e594a8097d440abffacee036","commit_message":"Bodyprog: name `s_RayQuery` field","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-08T02:15:39Z","commit_sha":"64b223e2f9e0d68c2220a07d4836baddc3c12692","commit_message":"Switch button press/hold/pulse checks to `Pad_ButtonClicked` macros\n\nShortens some of the controller button checks, gets rid of those long\n`g_Controller0->buttonFlags.clicked & ControllerFlag_XXX` lines everywhere\n\nWent with Pad_XXX for these over Joy_XXX so they wouldn't get confused with\nactual Joy_XXX funcs, but not against making these more consistent\n(right now we use \"controller\", \"pad\", \"joy\", maybe something less gamepad-focused\nlike \"Input\" would be better)\n\nTODO:\n- Add separate comments above each of these macros to describe what clicked/held/pulsed mean\n- Could be worth moving all the separate `#define playerChara xxx` instances into a global macro instead?","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-06T22:10:23Z","commit_sha":"9d0976146befdcb87dce609fb8cafa2d1d1c029f","commit_message":"bodyprog: JAP1/JAP2 build fix, switch define to ARRAY_SIZE\n\nProbably better for tables like these that other code won't access","measures":{"fuzzy_match_percent":99.99026,"total_code":2877980,"matched_code":2877700,"matched_code_percent":99.99027,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-06T14:46:02Z","commit_sha":"cc639d3f46d0cea6efd33deb65ccbfcbbd1f0541","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T23:53:02Z","commit_sha":"02f2a2f9d8c6a8f15b3cccdddc5ccc070140cca6","commit_message":"stf_roll: add .bss, fix postbuild overwrites\n\ngarbage was in middle of stf_roll .data which indicated a different\nsegment starting, splitting it there to separate .data didn't make much\nsense, but the data after garbage was all zeroes, so most likely .bss\n\ntwo postbuild patches would overwrite data from C with 00 before\npatching in garbage bytes, adjusted them to only patch in garbage","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148408,"matched_data_percent":37.565178,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T22:40:40Z","commit_sha":"63880075922198cdbae9859f711e6fcd923d54ee","commit_message":"tools: move postbuild patches to single list","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":147996,"matched_data_percent":37.46089,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T20:58:09Z","commit_sha":"430892d38dcef7739aba40081a351dcd41c27d6b","commit_message":"misc: move some garbage from C to postbuild","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":147996,"matched_data_percent":37.46089,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T20:49:00Z","commit_sha":"b78641f7dc29e1a1738d3c4eab4912645ad88d95","commit_message":"misc: move end-of-segment pad vars from C to splat `pad` segment\n\nleft some end-of-seg pads in place where there was unmigrated data\nbefore/after, since we don't actually know the bounds of that data\nyet, adding a splat seg could split it in wrong place\n\nalso a bunch of pads at start of segments which would be nice to move as\nwell, but moving those out of the C code can sometimes break alignment\non data that comes after them, seems only pads at end of segments are safe\nto move :T","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395068,"matched_data":148092,"matched_data_percent":37.48519,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T20:18:36Z","commit_sha":"d0e3924107b23fee719ee238e4cda33d72957127","commit_message":"misc: garbage data fixups\n\nmoved postbuild garbage patches into C files if we had garbage data defined in C for other regions\n\nmoved postbuild/C garbage that would work as splat segments into segments instead","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395128,"matched_data":147360,"matched_data_percent":37.294243,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T19:48:27Z","commit_sha":"7f812cd464cf8d6e871904d8afa74b9868b77797","commit_message":"bodyprog: retype D_800AD098 as u8, remove garbage rodata\n\nMoved rodata garbage to splat segment like others, since it's 4 bytes -\nD_800AD098 has to be handled thru postbuild since it's only 2 bytes","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395168,"matched_data":147404,"matched_data_percent":37.3016,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T19:38:02Z","commit_sha":"850249bc71e252775814c6f3e24bbe08bcf9e73c","commit_message":"bodyprog: match Gfx_MapMsg_StringDraw EUR","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T12:41:39Z","commit_sha":"1e539af0ddff4ed80338ef2dcc17809d0a47e1d6","commit_message":"bodyprog: match Gfx_MapMsg_WidthsCompute EUR","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T10:20:04Z","commit_sha":"e55c2fbe1ae36f15f2e449b8f065a64d623f2ac1","commit_message":"Screens: `options` -> `option`\n\nLike with `stf_roll`, this is just to preserve the original overlay name.","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T09:52:50Z","commit_sha":"a4b875bfb7bf0219ad7bc36a18631ccd128eae09","commit_message":"Screens: `credits` -> `stf_roll`\n\nDiscussed in January, we decided it would be appropriate to stick to original names for these but no one ever got around to it.","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T09:32:40Z","commit_sha":"f9b996519b3a9107d1e10ab450ca88b8fa50f648","commit_message":"Bodyprog: minor fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T07:38:04Z","commit_sha":"a899573b8c8ab6215a9462c43beaf5780b9cb6b1","commit_message":"Bodyprog: add `billboard.h`","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T07:04:24Z","commit_sha":"d25fca610842920503829fe72e9f7813381e11c2","commit_message":"Fix build","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T05:29:24Z","commit_sha":"693ec8cc35684f719b1a32182d14e31c413c394e","commit_message":"Maps: Stalker character deobfuscation","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T04:53:15Z","commit_sha":"d91ee05b43906af8b2bfd308ec15dd4fd71d4fc2","commit_message":"Bodyprog: name `s_800C44F0` fields","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-05T04:33:20Z","commit_sha":"37a8bd40137e72dd20e6c77f82381a95245280a4","commit_message":"Bodyprog: camera const-correctness, move player weapon data file","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T18:55:55Z","commit_sha":"6fe1561134aee34c227d78c2ed9a6f5db5ed2a77","commit_message":"bodyprog: match WorldMap_TexturesInit EUR\n\nfeels like there's a way to simplify this by defining CLUT_X/CLUT_Y for\nthe other builds too, but haven't found any code that matches for them\nyet\n\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T17:12:49Z","commit_sha":"fd331002134bb9d7850e1d29858529127ff0d826","commit_message":"bodyprog: match Screen_BackgroundImgDraw EUR\n\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T15:52:30Z","commit_sha":"64d22a62458f92bbe8adc82ad1330408e8a6f05e","commit_message":"Bodyprog: screen fade naming fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T15:20:58Z","commit_sha":"075f89ae6cd24fb87ce53a0093216c24b2f2ff09","commit_message":"bodyprog: switch #if PAL to macro\n\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T15:12:39Z","commit_sha":"6d4e5093e3ef8179cb0aecc9b6242c9afb482eb5","commit_message":"Bodyprog: shorten `bodyprog/screen` filenames","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T14:49:09Z","commit_sha":"bafc9dfb56c80abb4baac601d77e648f270083f2","commit_message":"Maps: move common files to `common` folder","measures":{"fuzzy_match_percent":100.00001,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T14:32:04Z","commit_sha":"8ec17a1836337cf054f3a994602fa92b7a0ef713","commit_message":"bodyprog: switch common PAL differences to macro instead\n\nCuts down a little of the #if hell, might still be others that can be\nupdated though","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T14:14:06Z","commit_sha":"b5abb53673438db47eda526b11508079490be5e7","commit_message":"Move particle files, name fixups","measures":{"fuzzy_match_percent":100.00001,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T13:46:04Z","commit_sha":"694e4b4c162a3d165c2648b88de15cb49a178c7a","commit_message":"Fix build","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T11:40:45Z","commit_sha":"77f9600989e6bdf4c1e9ecd3cd3f5fbf0d0da4f6","commit_message":"Bodyprog: file shuffling, remove some struct size assets","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T11:27:44Z","commit_sha":"1735792f336cf5618c980fbccf5c32c68b940d9a","commit_message":"Bodyprog: separate DMS format structs","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T11:02:35Z","commit_sha":"e9908dd22558e986f3a08a6e3a8a70400aaf8b77","commit_message":"Bodyprog: file shuffling","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-04T10:35:34Z","commit_sha":"56770e660889bad03df31559b1cab4c3efc32861","commit_message":"Bodyprog: roughly name and organise various files, add constants\n\nWorking with files named `bodyprog_4256781324561342578.c` is no fun, this way it's easier to have a mental model of most current file groups.","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-03T03:02:52Z","commit_sha":"8de3ffaeee0b12b2b8f3029d886b66b03e1a2c20","commit_message":"options: USA build fix","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-03T01:55:59Z","commit_sha":"ab0e74ad1c9d03d6524f39efe24dbe02b7b39073","commit_message":"options/credits: match 7 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2876884,"matched_code_percent":99.96192,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T22:33:08Z","commit_sha":"74d0b657b256897a2f006ee904fbfb1a0d340e80","commit_message":"stream: actually finish EUR (movie_main)\n\nmissed that one, oops","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T19:06:47Z","commit_sha":"4fe0b3df8338dc3e4b1da34c97d7fc5890f51d1d","commit_message":"stream: finish EUR","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T19:02:59Z","commit_sha":"437bdf6375a53a8cf26b3da8dd955e876d696c13","commit_message":"b_konami: finish EUR","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T18:58:48Z","commit_sha":"ec2540ed68669805eed4e4af1af638478c347eac","commit_message":"b_konami: match GameState_KcetLogo_Update EUR","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T16:27:28Z","commit_sha":"9238b75a82a50819410bfc87e1d9ba4c0dd908b7","commit_message":"General fixups: docs, function names, etc.","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T16:20:01Z","commit_sha":"e353f1a52f7d72c137425c7d56be72c55d5bd573","commit_message":"b_konami: match BootScreen_KcetScreenDraw","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T16:11:13Z","commit_sha":"0af4e02d0bd2b3fe3cae359bc54e29e3289a7479","commit_message":"b_konami: match BootScreen_KonamiScreenDraw EUR\n\nscreen_data.c images were shifted which made initial mappings wrong,\nlikely need to redo them >.>","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T15:57:04Z","commit_sha":"f1edeeb10d254de0ecadc67a834a127deb04d907","commit_message":"bodyprog: fixups","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-02T15:53:34Z","commit_sha":"33026b2115af6b63fe9bbdf65ad823fcfcc3548b","commit_message":"bodyprog: match EUR `BootScreen_ImageSegmentDraw`\n\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-01T22:33:57Z","commit_sha":"f5b30c1c6ec8349c6a643af5d350ea9990f64bf3","commit_message":"screens: setup EUR ports","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-01T18:19:01Z","commit_sha":"bf9f30687d2a9576e0c27ec252bec952fbf6c189","commit_message":"bodyprog: match 3 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-01T14:42:15Z","commit_sha":"a531323766dd7a5d20e7f5ba8b8ed57a6afd550a","commit_message":"bodyprog: match 2 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-01T14:15:55Z","commit_sha":"9ff5e1f811bd12faf730290cc389c0c83be0eb70","commit_message":"bodyprog: match 4 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-01T09:20:17Z","commit_sha":"86d5570b8bfd3154a3e671e190251f9086ebac2a","commit_message":"Make format specs use little-endian for bits","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-11-01T04:07:01Z","commit_sha":"ab434c9fad4ab61cf9567447657a41a17ef29f9e","commit_message":"Properly document unused DMS fields","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T18:27:38Z","commit_sha":"04735047c6816a75d46b4a17f920a41bc208d95f","commit_message":"bodyprog: match 5 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T17:58:49Z","commit_sha":"48ec5eda89dbb45668fa1b922f54afb6a1a2a485","commit_message":"bodyprog: match 7 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T17:35:57Z","commit_sha":"44f5fe081abaee5da553e5ae52b34abf6323f3e5","commit_message":"bodyprog: fix Demo_Update EUR mismatch","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T17:27:31Z","commit_sha":"e1b944b62f1244e5146d271a96fd4e8e1698215e","commit_message":"bodyprog: match 5 EUR funcs, fixups\n\nPrefer VERSION_REGION_IS for changes that would also exist in any possible EUR v1.1\n(who knows, non-zero chance some post-release proto could show up one day :p)","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T14:58:14Z","commit_sha":"7fc4362ccf36c344d7233dffce6f3ea739b47b3c","commit_message":"bodyprog: match 2 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T11:50:22Z","commit_sha":"9ab01f6590d88ea7264f91e7d7e8f736dd97d2a2","commit_message":"bodyprog: match 3 EUR funcs","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T11:14:56Z","commit_sha":"bd8dc2a705e6f2b9b85a467b5318b81b1c0c5406","commit_message":"bodyprog: name 2 funcs, g_OvlItemLang","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T10:40:18Z","commit_sha":"591b1ac4c59125ae99bb1d2a19a9eb1ee5447bd9","commit_message":"bodyprog: match 3 EUR funcs\n\nSeems s_GameWork is extended since this func reads +0x5E0 into\ng_GameWork pointer.\n\nfield_5E0 stores palLanguageId + 1 for some reason, could just be used\nto tell if this code has been ran before - since field_5E0 would be 0 at\nstartup, if it used \"field_5E0 != palLanguageId\" then palLanguageId = 0\nwouldn't trigger this properly, but adding +1 to palLanguagId as a hack\nwould workaround that?\nOr maybe some other part of code also reads 5E0, not sure.","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T10:37:44Z","commit_sha":"ea84af64db5213ca7935c536046fb149231bdbec","commit_message":"IPD deobfuscation","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-31T07:38:01Z","commit_sha":"1a4ee8ce8b653bed5002fad42f469fad5185a0a5","commit_message":"Bodyprog: collision deobfuscation, minor math fixups","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-30T23:48:22Z","commit_sha":"54993a66e0caad5e72a160aa03df8f2382b918b2","commit_message":"Bodyprog: 2 EUR matches\n\nMatches done by @emoose and with little help for cleanup by netcat\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-29T06:13:30Z","commit_sha":"32268135cf5ba478d699e56d5dc78544d4718000","commit_message":"Run configs formatter","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-29T06:12:53Z","commit_sha":"959ae23186e0895adfab0183fa74d85a81f153a3","commit_message":"Bodyprog: ray collision deobfuscation","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-28T16:47:56Z","commit_sha":"e110719a175a30229a0796db588b7187905d32ca","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-28T13:16:08Z","commit_sha":"b5432c2374e124098e4c33cf5a51effef47e50f8","commit_message":"Bodyprog: character collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-28T11:53:35Z","commit_sha":"dced55429e7e2ddc07c068060a29d9486870a991","commit_message":"Bodyprog: character collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-28T08:17:36Z","commit_sha":"f6026b2dc0baf6d5c100fccc4afc14c70d2415a5","commit_message":"Maps: event struct and enum organisation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-28T07:28:20Z","commit_sha":"264f76905977bde9a5ad649d72bcd90034892dfe","commit_message":"Maps: mass renames","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-28T05:52:45Z","commit_sha":"5b518a6c0363d29d1a9fc0a29984d53333347084","commit_message":"M0S00: Move map messages","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-28T04:54:35Z","commit_sha":"d18085478c135fd2a2c5b665246469ba6fc246e4","commit_message":"Rename all `header_field_D2C.h` -> `collision_triggers.h`","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T16:39:22Z","commit_sha":"0de9bdf5003eb7385b03f2fbfa690110ae070109","commit_message":"Finish up collision triggers","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T15:54:02Z","commit_sha":"fc8b0a6727bb35e7a20a8d8cd3f57a42ebdbce08","commit_message":"Collision deobfuscation","measures":{"fuzzy_match_percent":99.99995,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T12:10:02Z","commit_sha":"3b9a686c490abdf2b771ef064a241c3434c1ee90","commit_message":"Collision trigger deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T11:35:31Z","commit_sha":"f437531b90b2c6f7ad3dfe9dd4a6c5860df94e83","commit_message":"bodyprog: match 6 EUR funcs","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T11:14:08Z","commit_sha":"86591b12d0889e7feb7849ee7db798c591df44be","commit_message":"bodyprog: match SysState_GameOver_Update EUR","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T10:47:55Z","commit_sha":"af443b4673de0d5779020db1f9a34609b664d6bf","commit_message":"bodyprog: match 5 EUR funcs","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T07:08:32Z","commit_sha":"ddaec2008e221582e4dda368d7b782ad13a2ffda","commit_message":"Run configs formatter","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T07:06:33Z","commit_sha":"a3ead310303646e22222690abf404b2c8198471a","commit_message":"Collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T06:38:52Z","commit_sha":"d536a2fcef9b9b0b8d28216558a3df0068c570d9","commit_message":"bodyprog: match 4 EUR funcs","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-27T04:47:32Z","commit_sha":"1d8bf47be94bfef1abffcd7cd5612f390379459a","commit_message":"Collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T15:50:46Z","commit_sha":"b5a5a0ebea542a81cf863380492c776f2bf30222","commit_message":"Collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T14:30:00Z","commit_sha":"59fd80f8180f18d9d90c3442cc04ed1293786973","commit_message":"Collision deobfuscation progress","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T13:25:17Z","commit_sha":"2a9a49b778d3ec2968d371de90f4eccbf1489de3","commit_message":"IPD format progress","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T10:02:09Z","commit_sha":"fd121786ed5347b32a180fd5cd3f84e0857a8e50","commit_message":"Update IPD format spec","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T09:10:45Z","commit_sha":"7670cd6c314cf87f2d5e6e5b83ee5a33b0f8094f","commit_message":"IPD format progress","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T07:43:35Z","commit_sha":"0d3a5159bbf202c8e49caab2158b8f21d49d62f2","commit_message":"IPD format deobfuscation, Fix `CHECK_FLAG_IDX`, cleaner floats","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T06:31:28Z","commit_sha":"3a4df7aa583c498370af7451b026562fe3a2d684","commit_message":"IPD collision flags deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-26T04:54:29Z","commit_sha":"5737db01c930c59f513f768988ecf1246f452eb5","commit_message":"IPD format progress","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-25T16:13:47Z","commit_sha":"1a327853e2d19f3c38664430b7e34a60c0cbce12","commit_message":"IPD and collision format progress","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-25T12:25:00Z","commit_sha":"726d27174745c970fd0afb718fca62403f8e8622","commit_message":"Misc macro/TODO fixups","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-25T11:47:34Z","commit_sha":"c01ae9fbafcb63ef668abf8ca121753d36663e56","commit_message":"Math_SetSVectorFast fixups","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-25T08:37:26Z","commit_sha":"6c97b46d08df0ba7512d935390d1871f592a9a16","commit_message":"IPD format progress","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-25T03:07:42Z","commit_sha":"c1ba506c1c7bddc8c5190e4b36ee78b04e2d24fc","commit_message":"libkpad: remove u8 cast","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-25T02:54:39Z","commit_sha":"664369f3f77d8fcd0cca2a1c16959010d3277ee6","commit_message":"libkpad: function naming, .c header","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T10:49:52Z","commit_sha":"ef3e847ce657df66719c4868ec6a833eafbdba92","commit_message":"Bodyprog: misc. doc fixups and demagicking","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T09:10:12Z","commit_sha":"d0537327093e352670517bddb4deca4254c1409a","commit_message":"bodyprog: match 2 EUR funcs\n\nSeems fixed by MapMsgIdx change in last commit","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T09:06:13Z","commit_sha":"8a76b357941f18e069ece897d854fd025dc61196","commit_message":"map5_s02: port to EUR\n\nPorted to check if JAP2 change in map5_s02 code was included (`Game_TurnFlashlightOn` call)\nseems EUR is missing it though, could just be something that was added between EUR and JAP2.\n- TODO: check other maps that have JAP1/JAP2 code changes\n\nLot more EUR-exclusive vc_road_data changes here too, guess we'll see these a lot >.>\n\nAlso fixed map_msg.h enum (had to remove enum indexes past the member EUR added in though)\nSome of the nonmatched bodyprog funcs made use of this enum afaik, maybe this would help them match now...","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T06:00:13Z","commit_sha":"2b83525d176de09489b00f3f02ac8f918440a546","commit_message":"Bodyprog: add IPD term glossary","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T05:47:33Z","commit_sha":"0ac946d5b0ab725ec0dcc01e745c3842eb690825","commit_message":"Bodyprog: floor type demagicking","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T05:33:11Z","commit_sha":"45b60faa625a217924a3ee9aa2ecf3abd25781d2","commit_message":"Bodyprog: `Screen_BackgroundMotionBlur` (EUR) match","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T03:42:10Z","commit_sha":"e40a59d2e65e51294dff0f94567ea5aaeea735b4","commit_message":"Bodyprog: `func_800808AC` -> `Collision_FloorTypeGet`","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-24T03:35:14Z","commit_sha":"de109aaea06a44dce8d04b2bec7de21333d7319c","commit_message":"Bodyprog: \"ground\" -> \"floor\"\n\nFloor/ceiling term pair fits better and is more conventional for this type of collision system.\n\nAt first I used \"ground\" to arbitrarily differentiate SH from Tomb Raider terminology and because it was assumed the game didn't have a concept of ceilings. It was later discovered it in fact does, so continuing to use \"ground\" no longer makes sense.","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T19:08:08Z","commit_sha":"ad42d2f91dfddc2c712df99d2f97043d750e554d","commit_message":"tools: fix iconv_sjis_wrapper.py for EUR","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T16:33:44Z","commit_sha":"148c91fad41bf8df7008f3f3bbb1ad30fc158c15","commit_message":"Bodyprog: collision docs","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T16:00:10Z","commit_sha":"bf1e01345a001e9247b9b10a6525168dba5edc68","commit_message":"Bodyprog: purge remaining instances of \"subcell\"","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T15:32:13Z","commit_sha":"ce0ca3db19092fa180701e5882db5ec23d005ca5","commit_message":"Update configs formatter","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T15:28:36Z","commit_sha":"4220b72d467f72fd6378d9d1f1d82ffe18437d84","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T14:07:36Z","commit_sha":"9d4d910d5388903605fe60982be7b56ca2cdaf80","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T12:36:49Z","commit_sha":"b0767dda2a0ecbc91112b967d725125db7efd250","commit_message":"Bodyprog: map chunk deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T09:16:36Z","commit_sha":"859b0b94635e060f5084b764bf45d996db94ac31","commit_message":"Bodyprog: `e_SpawnFlags` -> `e_CharaSpawnFlags`","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T09:11:15Z","commit_sha":"8b7209f19ab419997757551c219d4a9f4ad66397","commit_message":"Bodyprog: organise enums","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T08:54:37Z","commit_sha":"b065acac04401ca0770396b8a61be02fc272107e","commit_message":"Bodyprog: move `CELL_XZ` macro","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T07:24:29Z","commit_sha":"c605dbd41d133c434b45782888e43a30314f8022","commit_message":"Bodyprog: header shuffling","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T06:18:29Z","commit_sha":"82f2385cc57a1e2882df1cef93e7c325438a7f45","commit_message":"Bodyprog - EUR: Moved function\n\nalso fixed ninja_config.py to work with the other releases.","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T05:36:55Z","commit_sha":"449329d5c49f1562736bcbc58c20bce07f8b7497","commit_message":"Bodyprog: move screen-related macros to `bodyprog/screen/screen_data.h`","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-23T05:23:15Z","commit_sha":"5b069bf2c6e1a09506b7283a67fb044907800e1f","commit_message":"Bodyprog: `s_Keyframe` -> `s_CharaKeyframe`, minor formatting fixups","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-22T22:10:03Z","commit_sha":"8a16aab925373696eaec2935dfe4f4c012b139e8","commit_message":"bodyprog: match 4 EUR funcs, add `SECONDS_TO_FRAMES` macro\n\nPAL uses 50Hz tickrate in some functions, usually as part of\nSECONDS_60_FPS calls\nChanging TICKS_PER_SECOND to 50 breaks a bunch of code though,\nso added a separate SECONDS_TO_FRAMES macro that replaces\nSECONDS_60_FPS in code that does change in PAL. (unsure if any code\nmight have still used SECONDS_60_FPS yet though, seems some things must\nstill be timed for 60 since TICKS_PER_SECOND change broke stuff)","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-22T21:32:51Z","commit_sha":"cff38422fce4037342ca7bba9b691d6d86c8718f","commit_message":"bodyprog: match 4 EUR funcs","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-22T21:14:53Z","commit_sha":"df08994979892d8295b71373bf25309f0c8bacbe","commit_message":"EUR: migrate bodyprog to C (~75 nonmatchings)\n\nLooks like text code is a big part, kinda expected, but there's a bunch\nof other random functions changed too, eg `view` camera has a couple\nchanged for some reason\n\nCould be changes for 50Hz, or maybe PAL resolution related?\n\nHad to add some hacks to include data/bss for statics in the nonmatching\nfuncs, should be removable once func is matchedc","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T20:05:14Z","commit_sha":"405a62166af93385d8f71c0ae98782b7b5ad3202","commit_message":"EUR: match main EXE, add reports","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T15:09:19Z","commit_sha":"52822921798d78290701aa6985f67675499f02af","commit_message":"saveload: match SaveScreen_MemCardStateDraw JPN\n\njust 2 unnamed non-matchings left\n\ntodo: might be better to put USA strings above the JPN ones here, maybe\nstrIdx could use an enum in this func as well","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T13:36:02Z","commit_sha":"122234f4679bbcba53bfc8ade575607d96d09a3c","commit_message":"saveload: match SaveScreen_WriteOptionsStepDraw JPN","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T11:11:49Z","commit_sha":"19ee0e0bce26089114c5a16d52697b7bdd7eb4ce","commit_message":"saveload: match SaveScreen_FileIdxDraw JPN","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T09:22:37Z","commit_sha":"152f1b48a08610ec7fe4bf7c13cccf6c21fbbbef","commit_message":"saveload: fix JPN rodata","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T09:12:25Z","commit_sha":"894a3d4a23e14461f76d9b733b9fd69f8251612a","commit_message":"saveload: match SaveScreen_SavesSlotDraw JPN","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T07:54:44Z","commit_sha":"bf72863666e818643846c4541aad3855d57b287c","commit_message":"saveload: minor fixups","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T07:42:03Z","commit_sha":"791959dbb63b1390cd2f374d53051651b927eea6","commit_message":"saveload: match 1 JPN func, fixup unused string arrays\n\nFound a fix for the unused string arrays in some files, array just\nneeds `const char* const`, then reads from it will act like normal\nstring reads\n\nFixed a couple tables we had but there might still be others\naround","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T06:14:59Z","commit_sha":"c1c6940775305f1a10f3df6bd5839d4f26eefe34","commit_message":"saveload: match 3 JPN funcs","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T05:38:01Z","commit_sha":"129d1bd21a41d712446c27988bcde8edfdba1838","commit_message":"JPN: port saveload (10 non-matching funcs)","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T05:25:00Z","commit_sha":"1af73075accd8bae8382c0e47589d299a0022616","commit_message":"objdiff_generate: fix certain units being skipped if `data` in name","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":395172,"matched_data":147696,"matched_data_percent":37.375114,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":146,"complete_units":0}},{"timestamp":"2026-10-21T03:18:47Z","commit_sha":"66857214a90ddddf2ac5b1d1f52a70e46fe47f2e","commit_message":"sound_data: migrate JPN data\n\nadded g_AudioData generation to extract.py, oddly this shows\nMEP102/MEP103 sizes don't match in the table vs the rom, unsure\nif this affects anything ingame\n\nTODO: could be worth creating an audioenum file too to define each index\nin the table, need to check how table gets indexed first","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T15:05:56Z","commit_sha":"3939dac3fe91ceb3eceac64fe6ac941dee28078b","commit_message":"Bodyprog: minor collision deobfuscation, const correctness","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T14:26:28Z","commit_sha":"92696bb6a59d0a120db5bae30ba3be6f989a64ae","commit_message":"text_draw: add JPN data","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T14:02:27Z","commit_sha":"aff678cbf0f8f9fd1ba1f32d97f941c944dfadbe","commit_message":"text_draw: merge in JPN funcs","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T12:38:17Z","commit_sha":"a7580d8e95d4f1126accbff71615ce5b27cbb665","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T12:13:29Z","commit_sha":"c0ef2ab15eed05f98247160355a67c0cf8ee5750","commit_message":"bodyprog: Gfx_Inventory_ItemDescriptionDraw JPN, fixups","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T07:14:57Z","commit_sha":"30f254e58c85c642f89dcb902b6198b483cd1741","commit_message":"text_draw_jp: match Gfx_MapMsg_StringDraw, sym names\n\nNamed some syms based on text_draw.c, it might be possible to merge\nthe JP funcs back into that now, will look into it more soon\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T06:36:18Z","commit_sha":"91cc2ed367815d8d9c973fe7c8d324741a658e90","commit_message":"misc: prim fixups","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T06:16:24Z","commit_sha":"87a47538ee39c2809ab4a9bb4959c717ee1fd4fc","commit_message":"text_draw_jp: match 2 JPN funcs, prim fixups\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T05:22:55Z","commit_sha":"1f46bfcce421cf168d11928a49222d055814f0a9","commit_message":"demo: fix JPN reloc issue, add 3 missing bodyprog syms","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T04:59:21Z","commit_sha":"3dd6c5f074eb95bd1240ddd0478c72b95ad3ef1c","commit_message":"text_draw_jp: func_8004C8D8, rodata cleanup","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T04:21:11Z","commit_sha":"9c5cd2bd7c5efc16e8b3bec14022613090c75d4d","commit_message":"Bodyprog: header shuffling","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T03:51:33Z","commit_sha":"a22e14e80c30ecb137a927eca36fb1190c29caba","commit_message":"options: GameState_Options_Update JPN, text_draw_jp func_8004C918\n\nfunc_8004C918 was matched 7 months ago lel, thanks Clever Clam on\ndecomp.me","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T03:28:16Z","commit_sha":"d4fc9903ba85c381aca89bc873ee3972c2c3182f","commit_message":"Maps: BGM flag demagicking","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T03:06:30Z","commit_sha":"9e7ebc0a1f3ae17f721764ec1ffd5c1568ca9cac","commit_message":"options: func_801E6F1C JPN\n\nalso try excluding safechk.s from report (TODO: add the safechk bins to\nJPN1/JPN2 too)","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T02:38:18Z","commit_sha":"bdbe8055426f12dabe7f7e71651afbd3de0cb5cb","commit_message":"options: func_801E749C JPN","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T02:07:56Z","commit_sha":"7e7f5b18320ec56a51b6ad317438261c20e23c38","commit_message":"Bodyprog: move and rename bone and animation source files","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T01:42:21Z","commit_sha":"2e83b33b995ee8e7da431ab9cc677cd6b183cfad","commit_message":"Bodyprog: minor bone handling deobfuscation, run configs formatter","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-20T01:12:15Z","commit_sha":"5bc84cb61187436691dd61f82a32a9e4f3cb741e","commit_message":"options: func_801E794C JPN","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T22:46:53Z","commit_sha":"a165ee92f173e69c2858ad5e1751edb67789b55a","commit_message":"options: port to JPN (4 nonmatchings)","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T21:59:10Z","commit_sha":"16aa0fa38620402c481a50c90f4f33edf14f7560","commit_message":"credits: port to JPN versions","measures":{"fuzzy_match_percent":99.999985,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T20:48:05Z","commit_sha":"99474347e23aea4484dd9d26edfc34dbb16788ef","commit_message":"JPN: version comment fixups\n\nSome of the JPN2 checks could still be wrong, might be changes that were\nadded in EUR instead","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T20:42:25Z","commit_sha":"3fce82f1c01ea147a47b396bdf69c0161e4ac667","commit_message":"JPN1/JPN2: use psyq libs","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T08:45:06Z","commit_sha":"b36930f8df93abec1fedc206708c0452823f9558","commit_message":"maps: minor fixups","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T08:23:09Z","commit_sha":"d2e39a71c3f1245cd21370dd7f0bc8da1972551e","commit_message":"JPN1/JPN2: port MAP6\n\nJAP1+ adds extra ANIM/PARK.DMS file load to M6S04\n(map already has a load of that earlier too, maybe that got skipped\nin some instances?)\n\nJAP2 adds extra code in M6S02 Map_WorldObjectsUpdate, some 1-frame delay\nbefore it adds flag to D_800C4414?","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T07:43:26Z","commit_sha":"c523ddc041dcd1230b9f231f6e895ce2c8904d10","commit_message":"JPN1/JPN2: port MAP5\n\nFirst code change, adds Game_TurnFlashlightOn call to MapEvent_KaufmannBarFightCutscene (JAP2 only)\n\nJAP1+ changed 2 vc_road_data.h entries in M5S01","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T07:26:32Z","commit_sha":"3c56db912821e593bf21326a7a3af94c70753b0d","commit_message":"JPN1/JPN2: port MAP4\n\nOnly difference in JPN1+ is a vc_road_data.h entry","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T06:37:30Z","commit_sha":"4ea10044ad5f47131d6b84902579389bc2ed6202","commit_message":"JPN1/JPN2: port MAP3\n\nNo code diffs from JAP0/USA\nJAP1+ removes one entry from vc_road_data.h in M3S00/M3S01/M3S06, looks\nlike an empty entry that was probably unused","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T05:39:15Z","commit_sha":"074d39bb3f6b3f5036ef040ae8f3cdc215f5d6da","commit_message":"JPN1/JPN2: port MAP2\n\nNo code diffs, a map2_s00 map point had same changes as USA did\nchanged from REGION_IS(NTSC) to EQUAL_OR_NEWER(USA)\n\nmap2_s02 has one vc_road_data entry changed in JAP1 onwards","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T05:24:22Z","commit_sha":"902a7f6c344241ac3f2b69ad023682b1da13d6e8","commit_message":"JPN1/JPN2: port MAP1\n\nNo code changes, vc_road_data has some camera limits adjusted from JAP1\nonwards","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T05:07:58Z","commit_sha":"12d51255663b5f24fa0f3b2e87d4676baf0004f7","commit_message":"JPN1/JPN2: port MAP0\n\nNo code changes from JAP0, only difference is different map message idx used in some events\nmaybe a bugfix","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T04:58:22Z","commit_sha":"fd9b06b699251520cd08dc9f54340ff453f07b13","commit_message":"JPN0: add D_801E8918 ignored symbol","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T04:46:31Z","commit_sha":"d70fcf6e4995e9300faa47c8a0a3761dbbde1f16","commit_message":"JPN0: add scratchpad sym","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T04:05:08Z","commit_sha":"4236d71e5238691b796df2acbf83d643cff3bfca","commit_message":"JPN0: port MAP7 to C\n\nMap messages reordered, only code diffs are in map7_s03 which is missing some\nCharaAnimCmdExecute calls in the JAP0 cutscenes, guess those scenes might play\na bit different in that first release?\n\nScreens still unported, probably harder than maps were since a lot of them\nmight be text related\nHoping jap1/jap2 should port pretty easy now messages are in place...","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T03:43:08Z","commit_sha":"fc619ec60c793ce4cc0e1ba442cd7f4a65a0930b","commit_message":"JPN0: port MAP6 to C\n\nNo map message reordering thankfully, only change is func_800E73B4 calls\ninto func_8005F6B0 with different param","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T03:25:06Z","commit_sha":"c4be75cc2e12b9b8f11bc435d0323dce13e90fef","commit_message":"JPN0: port MAP5 to C\n\nMap message reordering, map5_s03 also has the newspaper bug in JPN0 too, changed\nthe check to `VERSION_EQUAL_OR_NEWER(JAP1)`\n(unsure if JAP1 actually did fix it or if it was EUR though, guess we'll know soon)","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T02:58:13Z","commit_sha":"4601b92fae004d4de71ea7562070cedbbff4ccd3","commit_message":"JPN0: port MAP4 to C\n\nMap messages reordered, floatstinger.c adds an @bugfix\n\nAdded port_map.py helper script for porting maps over, might come in\nuseful for EUR stuff later","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T02:31:24Z","commit_sha":"47a1f28e6afcf0ef79fe895c9546845b425a9c61","commit_message":"JPN0: port MAP3 to C\n\nMap messages reordered, and map3_s04 func_800D2668 adds\n`VERSION_EQUAL_OR_NEWER(USA)` around Game_TurnFlashlightOn call","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T01:17:08Z","commit_sha":"ffcd6818f6ca874b6c6bebe12b0c731291b84c7c","commit_message":"JPN0: port MAP1 to C\n\nMostly just map message reordering, easy port\n\nNo version changes other than Grey Child being replaced with Mumbler,\nadded to e_CharaId as `Chara_GreyChildOrMumbler`","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-19T00:36:32Z","commit_sha":"852fc3faacf68bbf7875a64030f72b57ee5ecfa9","commit_message":"JPN0: port MAP2 maps to C\n\nNo major changes besides some map message renumbering\n(could mean they were using some kind of enum for map messages?\nsince the message added in USA had bumped all indexes by 1\nnot too sure though, maybe the later JPN1 releases will show if they\nkept the same indexes as USA or switched back)\n\nair_screamer adds another `VERSION_EQUAL_OR_NEWER(USA)` bug-fix change\nmap2_s00 Map_WorldObjectsInit also adds an extra check under `VERSION_EQUAL_OR_NEWER(USA)`\nand also has one point in map_points slightly changed, unsure what that's actually affecting though","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-18T23:35:57Z","commit_sha":"590988dc39589cdf2feb80ae9b4da8ea25591658","commit_message":"JPN0: port 8 maps to C\n\nmap0_s01, map0_s02, map1_s04, map1_s05, map3_s02\n(and empty map4_s00, map4_s06, map6_s05)\n\nPorted USA splits to JAP0 for these maps and updated with JPN text\n\nair_screamer has some changes that were probably bug fixes in NTSC onwards,\nwill check with JAP1 soon to confirm","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-18T22:57:07Z","commit_sha":"5159e20aa67dc2d574e2b4bb924fb7a50e5fe840","commit_message":"maps: merge character code includes into main TU of maps\n\nAfter experimenting it seems having the particle/player/character code in the\nsame TU as MAP_MESSAGES is needed for the right alignment padding to get used\n\nIdeally we'd have seperate TU splits for them, and for each character, but this\nbreaks the alignment between data, which doesn't seem can be fixed\nproperly with compiler/linker-script changes :(\n\n(some maps did work with characters split, as we did already, but it's a mess\nof some maps using splits and some using includes, this change finally makes all\nmaps include characters the same way)\n\nThis will make improving data % even harder - objdiff only scores data sections\nin each single TU as 0% or 100%, and now we're merging even more code/data into\neach TU :/\n\nOn bright side this should simplify JAP porting, and with the proper inner-TU\nalignment it removes some awkward pad splits too\n\n(later we might be able to make the character includes be based on HAS_Chara_X\ndefines too, for now it's fine to include them manually though)","measures":{"fuzzy_match_percent":99.99999,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360668,"matched_data":131196,"matched_data_percent":36.375835,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":141,"complete_units":0}},{"timestamp":"2026-10-18T22:20:34Z","commit_sha":"63a7440e730f49e8d95fa5e10e826609f6e6f18f","commit_message":"progress.yml: add JAP1/JAP2 and fix bss non-zero issues\n\nnon-zero bss in jap1/jap2 also showed some bss we had in C wasn't actually part of code","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360516,"matched_data":133432,"matched_data_percent":37.011395,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T21:46:31Z","commit_sha":"eb402a01efb2993e410bc4fc8e0c63d154175bfe","commit_message":"progress.yml: use serial num for USA/JAP0 reports","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T21:37:28Z","commit_sha":"158f8c3dc58eec31827ef8990485a6848f9ad176","commit_message":"progress.yml: revert to SLUS-00707","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T21:06:08Z","commit_sha":"7800a582ca36229790295f3715abc51f30f416ea","commit_message":"bodyprog: fix JAP1/JAP2 splits, add build checks + bump action versions","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T20:40:12Z","commit_sha":"e41cf1dfe15783142083b69acd7b9217c02f5e44","commit_message":"check.yml: add JAP0 build check\n\nadded USA/JAP0/JAP1/JAP2 executables/overlays to our container, fingers\ncrossed this works...","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T20:27:49Z","commit_sha":"8c6530916fac4bcdd220836a04b98f7307246baa","commit_message":"JAP0: fix bodyprog/map0_s00 splits","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T18:17:10Z","commit_sha":"84b242a18a0d684e1b1ad222389cef6764ec58a5","commit_message":"bodyprog: field_2510 -> kpadHandlers_2510","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T18:07:43Z","commit_sha":"7f5496f1262845beed950219d2c725bd6cdc30a9","commit_message":"bodyprog: move g_VibScript_Steps above funcs","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T16:47:53Z","commit_sha":"48ea8d4d51665ad837ab3b537269683372795605","commit_message":"libkpad: struct/field naming, s_KPadWork\n\nTODO: s_8002AC04 is one nasty struct, seems used for some kind of\nscripting of vibration events, not sure if SH1 even uses most of it","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T16:04:10Z","commit_sha":"0182b62500689628a8d8c190f6f32aac84f8cb86","commit_message":"Bodyprog: names, misc. deobfuscation","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T10:37:49Z","commit_sha":"73a9f176fa04a0268c5dc0263ba35b1fe23498b8","commit_message":"Bodyprog: `func_80044F14` -> `Bone_ExtraRotationSet`, player control code fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T09:28:15Z","commit_sha":"1b38fbb17dc6278b1199e802171562cbff210787","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-18T00:25:07Z","commit_sha":"71c9fe16eb202a2a1848cc1c379fd15ba7acd487","commit_message":"map6_s04/map7_s03: rodata migration","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":133376,"matched_data_percent":36.994217,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-17T21:09:30Z","commit_sha":"012302be93fec00e8164d179875084033abd9bda","commit_message":"map4_s02/map6_s00: cleanup","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":128840,"matched_data_percent":35.736076,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-17T21:05:59Z","commit_sha":"8b7cdb63a695a7c9e16860226e3d3c87080fd3a6","commit_message":"bodyprog: migrate garbage padding","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":128840,"matched_data_percent":35.736076,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-17T21:03:51Z","commit_sha":"09d2ab22833c6444da4ae704872a8d7f7ab79627","commit_message":"maps: rodata migration","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360532,"matched_data":128804,"matched_data_percent":35.726093,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-17T20:53:50Z","commit_sha":"c1f93654fc1aadbf9178c0d6cc299ba404bf97d6","commit_message":"maps: AirScreamer rodata migration, start on character uber-TUs\n\nAfter trying to split characters a bunch of ways, seems more likely they actually\nbuilt them all as one TU\n\nSeen stuff like .rodata used in player.c and stalker.c being shared between them\n(eg. some literal starts before rest of player.c rodata, then stalker.c ends up reading from it)\n\nBest explanation for it is player.c and stalker.c were compiled together in a single giga/uber-TU\n(uber-TU can also explain the padding between these TUs as well)\n\nCould be that they had a single characters.c file somewhere which would include based\non what defines the map had set\n\n```\n#include \"../player.c\"\n\n#ifdef HAS_Chara_Stalker\n#include \"../stalker.c\"\n#endif\n\n#ifdef HAS_Chara_Lisa\n#include \"../lisa.c\"\n#endif\n```\n\nWould mean less config for them, adding new character is just setting a define\nand updating map header (or maybe that used ifdef too..)\n\nOrder of those includes needs checking, for now will probably make separate\ncharacters.c in each overlay folder, then later can see about combining with ifdefs","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360340,"matched_data":110044,"matched_data_percent":30.538935,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":311,"complete_units":0}},{"timestamp":"2026-10-17T20:33:53Z","commit_sha":"a8e02aa1851e46f885d079ae25964fd0cbd2e12c","commit_message":"Bodyprog: code recognition and organization\n\nThis will need more work and clean up because I mixed a lot terms.\n\nAlso udpated readme to reflex 100% function matching. GOOD!","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360324,"matched_data":112272,"matched_data_percent":31.158623,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-17T20:09:43Z","commit_sha":"7666dcd4e91de314254264b88c514a2fde2dbbf4","commit_message":"libkpad: hack fixups","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360328,"matched_data":112276,"matched_data_percent":31.15939,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-17T18:58:32Z","commit_sha":"cca997d2cd3f1a6eecd3ecedd448239f56cce6c3","commit_message":"tools: script to fix objdiff issue with splat-named `jtbl` vs unnamed C jtbls","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360328,"matched_data":112276,"matched_data_percent":31.15939,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-17T18:38:55Z","commit_sha":"605032fa5d9e23fc98eea3b72ab74bf9d1f7e5f3","commit_message":"configs: fixup rodata offsets, update objdiff to 3.8.2","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360328,"matched_data":87028,"matched_data_percent":24.15244,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-17T17:50:46Z","commit_sha":"da9d6422e46f07457ee85dae8639ab69f1700b99","commit_message":"macro.inc: change jlabel from global to local\n\nBumps up data % a little, doesn't seem to break anything on my end too\n(how did other projects handle this?)","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360320,"matched_data":83792,"matched_data_percent":23.254885,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-17T16:43:39Z","commit_sha":"39f5654198cde51449009ff5a1ddbe13381a9251","commit_message":"libkpad: func_8009E198 (w/o hacks :)\n\nstupid dumb function that's probably still not close to what original\ndevs wrote, meh\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: dreamingmoths <dreamingmoths@users.noreply.github.com>\nCo-authored-by: Mc-muffin <Mc-muffin@users.noreply.github.com>\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: vineal101 <vineal101@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99997,"total_code":2877980,"matched_code":2877980,"matched_code_percent":100,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6527,"matched_functions_percent":100,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-16T03:46:11Z","commit_sha":"7ba201392c02d2d9c090d5de868f1605e3a77d79","commit_message":"Bodyprog: name anim funcs, minor renames, formatting","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-09T13:02:30Z","commit_sha":"0f3ab30304c3f7390de0fab3c895db800f43d59e","commit_message":"Bodyprog: iItem screens static variable names","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-09T12:48:54Z","commit_sha":"54166f01a85079cdf414498f2a1c7ac899af283f","commit_message":"Bodyprog: iItem screens deobfuscation","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-09T11:42:46Z","commit_sha":"dba5225f2b83f957f0eacdcdfa7fb7379a08eb88","commit_message":"`Ipd_ChunkInitCheck` -> `WorldGfx_ChunkInitCheck`","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-09T11:29:01Z","commit_sha":"532e6bf84faf7bedfc736a89d465343d988a909a","commit_message":"Deobfuscation, fixups","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-06T23:23:23Z","commit_sha":"d9e28f8315c7938117224f21516786d9d149a145","commit_message":"Bodyprog: more `memcard` organization and documentation.\n\nalso some minor corrections","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-05T07:57:25Z","commit_sha":"b23c441ee5f58e056b339a99fb95527b4964bc43","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-10-04T05:33:24Z","commit_sha":"6d23fdfdb43f5f9e222b2e157f1a945e6d312c73","commit_message":"bodyprog: `memcard` Minor documentation work\n\nAdded all scratches links and did some minor documentation.","measures":{"fuzzy_match_percent":99.99468,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-16T17:27:55Z","commit_sha":"a1f407cb1ed0992997ace33a024e52b47001fdac","commit_message":"Bodyprog: use `Q12_DIV`","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-16T16:55:40Z","commit_sha":"2d66cfabf26fc146de3196b131c193ec2e29eefe","commit_message":"Bodyprog: docs and deobfuscation","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-16T10:04:37Z","commit_sha":"4c4ececfd740f4dc76e097eff2f1b7e422999161","commit_message":"Name fixups, comments, demagicking","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-15T05:07:41Z","commit_sha":"4590db558d0854ec0ecb8693134385f67ffb0f2b","commit_message":"Formatting","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-14T12:54:39Z","commit_sha":"14887767811a73a007fca2f2f46d323b0ac836e9","commit_message":"Bodyprog: misc. deobfuscation","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-13T07:21:11Z","commit_sha":"1e3beb4afc1f2e9d50fc396b9ae0907967c6d319","commit_message":"bodyprog: gfx system recognition work","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-13T06:27:25Z","commit_sha":"22a46a4b3ac7d6ae45b214210349a947289d1495","commit_message":"Bodyprog: misc. deobfuscation","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-12T03:45:05Z","commit_sha":"faf0731c059ab0cc536de4f439fb099b6a215342","commit_message":"boddyprog: `memcard.c` clean up","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":47604,"matched_data_percent":13.21159,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-11T04:49:41Z","commit_sha":"995afb39d3f8f4f2d58335882496e66a959ecfa7","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-10T16:52:23Z","commit_sha":"e62001e56a434c644ca4e18cd600d1def57db4e3","commit_message":"Bodyprog: document remaining `e_MapMsgAudioType` entry","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-10T16:27:28Z","commit_sha":"280c3bd0f64e4aaad505d3c0ffb2253d5ccb5622","commit_message":"Bodyprog: map message deobfuscation, use  `DIV_FAST`","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-10T07:21:52Z","commit_sha":"4ec1bf64b0e401bb49ade6717c2607c34c73bf22","commit_message":"Bodyprog: minor polishing recognition work on `memcard.c`\n\npolishing a little this thing by adding \"proper\" brief comments on the header file, adding statics and adjusting names","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-08T07:05:55Z","commit_sha":"92cce2d9b7140a68ff75cdf39b263cf87357b55d","commit_message":"bodyprog: really minor recognition work","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-08T04:29:13Z","commit_sha":"38e618008323cc4a4ea9db35c63e9f11548e6b4e","commit_message":"Maps: Groaner deobfuscation, add `DIV_FAST` macro","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-06T13:35:59Z","commit_sha":"30e07626469d0057bcfc45bcecb33cda56715d82","commit_message":"Bodyprog: misc. deobfuscation","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-06T06:34:52Z","commit_sha":"a798d6c4fa719e771a38ce387513bd9fa51dc730","commit_message":"bodyprog: split work + minor recognition work\n\nalso adjusted a variable to make it look a bit better and restored a variable name, pls sezz don't touch retrieved variable names","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":33772,"matched_data_percent":9.37278,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-09-05T17:05:10Z","commit_sha":"a82cb107e4468dc335c8e71d712c5f0b36304b7a","commit_message":"Maps: Split Head deobfuscation, name object draw function params","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-05T05:01:05Z","commit_sha":"f9e096650f889c230f45e88e9133358face88602","commit_message":"Maps: name functions, dehexing","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-04T14:11:30Z","commit_sha":"82d216290ef288fa314446a89f6911fd011170af","commit_message":"Maps: name character functions","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-04T13:27:38Z","commit_sha":"4282fbc868e61779bfd87e6c3ea7aabb2360a5aa","commit_message":"Maps: name globals, move externs","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-04T10:35:11Z","commit_sha":"48df395678e88335c595780877c9edabf030705a","commit_message":"Maps: name globals, mesh swap deobfuscation","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-04T10:12:13Z","commit_sha":"513741b7d0103910c656c9f6e643b68b072ef408","commit_message":"Mesh swap demagicking","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-04T04:56:21Z","commit_sha":"424ab057a938ac594efa0a0701d50b20b9f536ce","commit_message":"Bodyprog: mesh swap macro deobfuscation","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-04T04:03:03Z","commit_sha":"9d2a3fdded8f35ac51c361525e06cd2f5301702c","commit_message":"Bodyprog: Character spawn and draw deobfuscation, name mesh swap functions","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-02T20:21:59Z","commit_sha":"4fcf7101fe6abb3978bcba9762f5b0de9aa50101","commit_message":"optimize python scripts (#499)\n\n* python script:remove unused imports\n\n* close file after extract\n\n* python script:remove unused imports\n\n* extract.py: use flags.none instead of 0\n\n* extract.py: optimize code\n\n* insertovl.py: clean up\n\n* autodecompile.py: use shutil.rmtree instead of subprocess rm -rf\n\n* autodecompile.py: use enumerate instead of count\n\n* decompile.py: use \"is\" to compare None\n\n* decompile.py: use \"is\" to compare None","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-09-02T04:22:31Z","commit_sha":"a8ff06ed17313989fab98d26baf97160c9a047a8","commit_message":"Bodyprog: NPC distance format fixups, comments, names","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-31T13:57:59Z","commit_sha":"9f8b15d4b95d922b84a116eda7a36f2e5dcb3bbc","commit_message":"Bodyprog: map message fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-31T07:41:11Z","commit_sha":"4b3ff90a953aae6cd72d4a96a937f3e83e35e34a","commit_message":"Bodyprog: DMS type conversions, string code fixups and docs","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-31T04:54:47Z","commit_sha":"f4a5a3f83c956f3d2c8226cdaa5cec679357ebbb","commit_message":"Merge branch 'master' of https://github.com/shdecompilations/silent-hill-decomp","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-31T04:53:16Z","commit_sha":"ab1b69e55ae284f69818dfbaf63cfbd647ece6da","commit_message":"Remove `SCREEN_POSITION_X` and `SCREEN_POSITION_Y`\n\nThese produced ugly floats. Raw values for screen coordinates were likely used.","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-31T04:38:40Z","commit_sha":"5c54f38b99a9ed1007c41aa566ff366736e672d9","commit_message":"Misc. fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-29T09:11:47Z","commit_sha":"777d9d09f9d3ab22d446011efb3e6653418af6ad","commit_message":"Bodyprog: use `Math_SetSVectorFastSum`","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-29T08:51:19Z","commit_sha":"fc933fcafbbef5bfad3a226911ee1993ff024a72","commit_message":"Bodyprog: names, demagicking","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-29T08:22:24Z","commit_sha":"215875f51665d1c1367820b329bd7ff2b734db44","commit_message":"Bodyprog: names","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-29T07:08:37Z","commit_sha":"33f09aa40ec3daf4b82f10960a43c15d04ecab9a","commit_message":"m7s02: add `D_800E9ED8_Set` inline","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-29T07:02:10Z","commit_sha":"7312a06fe56a69253f27303034d6da03fe85ef83","commit_message":"Bodyprog: controller function docs, map message names, demagicking. tidying pass","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-29T05:23:59Z","commit_sha":"c981183b148153b34814fb153c796e4b33f2e733","commit_message":"bodyprog: audio system recognition\n\nI think with this commit the entire audio system has become fully recognized. Not totally because it still missing some comments and still audios and task IDs needs to be recognized and do something to make them easier to modify audio tables, but the core part of the audio system is fully recognized, at least I think so.","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-29T04:24:14Z","commit_sha":"82349260f11a46f180bceaebae22c597947a21d8","commit_message":"Bodyprog: map message global names and docs","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-27T04:20:11Z","commit_sha":"1c7a2316a1641c24e149261fda8a3a336b6beb87","commit_message":"bodyprog: game audio system recognition\n\nmade more advances, now all of the `sd_call` variables are recognized and for the most part properly docummented","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-27T03:53:17Z","commit_sha":"1abcfa5d44e47f0537cc9ed774eb50dd14064d0e","commit_message":"Bodyprog: remove padding byte from  `s_AudioItemData`","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-25T11:12:30Z","commit_sha":"28a21b0ca52b9cc869af70edbd6fd2717eefe9ad","commit_message":"Trim offset suffixes","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-24T12:23:52Z","commit_sha":"6784a2f5489f1f2cb239749044a430329138c5ce","commit_message":"Bodyprog: ray collision and player control deobfuscation","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-24T10:19:15Z","commit_sha":"2089133fb981e47dfbe2cb61b0701195e752b7c2","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-24T05:24:21Z","commit_sha":"e0c260719193872c4b931053ddde1bf06604c5ee","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-23T05:08:43Z","commit_sha":"d77836cddfefbaf54ed844463fe348ba38338a4f","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-23T04:15:13Z","commit_sha":"c2d04e847ce79df05a5935f3f5c5b74961ddb238","commit_message":"Bodyprog: collision deobfuscation, style fixups","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-17T15:12:58Z","commit_sha":"abd18f9c285b9e6f88652c3a056f6d5800af32a3","commit_message":"Fixups","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-17T04:07:28Z","commit_sha":"a4016bad5b06029ab21cee18b33b34499e344926","commit_message":"bodyprog: BGM recognition, organization and corrections + minor organization for save code\n\nI did some organization for the save/memcard code\n\nbut the big thing is the much work done for the BGM code, I think now all code for BGM is recognized or closer to be fully recognized. I find out that some of the code that seems to be handling layer code is actually meant to deal with the console audio channels instead.","measures":{"fuzzy_match_percent":99.98886,"total_code":2877980,"matched_code":2877660,"matched_code_percent":99.988884,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-13T04:39:30Z","commit_sha":"81a4494d940701ed205a4de9b223e08e09753af8","commit_message":"Bodyprog: input deobfuscation","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-13T04:07:30Z","commit_sha":"9b508e19980c604d840d886133044588bee27586","commit_message":"Bodyprog: rename controller stick flags","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-13T03:20:31Z","commit_sha":"9ae8eeca2b0ba7aa2cd4a0a409885f24de947788","commit_message":"Bodyprog: split button flags into separate struct","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-13T03:07:09Z","commit_sha":"803d87418b4433cc301d1e6e577e34a8af5835ed","commit_message":"Bodyprog: input deobfuscation","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-07T04:14:02Z","commit_sha":"e99583c2e5a5a5d09555b5e6bccb92214032d5d0","commit_message":"Use `CLAMP` in `Dms_KeyframeIdxGet`","measures":{"fuzzy_match_percent":99.99469,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-07T03:10:57Z","commit_sha":"34187202e83ae12bdfebb548aa4c0ab8ef973f2a","commit_message":"Add comments to `Dms_KeyframeIdxGet`","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-07T02:50:16Z","commit_sha":"7426ec8f57a2bf6ddc7e7ca7e97b0d3b15871432","commit_message":"Finalise DMS docs","measures":{"fuzzy_match_percent":99.99469,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-07T02:26:20Z","commit_sha":"3f54804bf8e801d2f0a12d80f133bb7e1e222aad","commit_message":"Add DMS function docs, update names","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-07T01:30:27Z","commit_sha":"829bb0162ce508332d7163a031907d91661fc9c0","commit_message":"DMS fixups, const correctness","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-06T12:55:44Z","commit_sha":"97ccd1b44a5f79f5b0d78f8f736aa445bd074c62","commit_message":"DMS fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-06T10:06:31Z","commit_sha":"ff594d0fe18fb65c75d4616261b86f9efbe71237","commit_message":"Bodyprog: demo deobfuscation","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-06T08:43:11Z","commit_sha":"d40ec60d983831d9b88ffcd582ea851c546e9b4e","commit_message":"Minor struct deobfuscation","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-06T06:45:29Z","commit_sha":"ae37fcce68dbb12335f37bd13c687094e60a97cd","commit_message":"misc: fix for readme and exception for *.ksy files\n\nnow updating katai scripts won't trigger CI","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-06T06:30:26Z","commit_sha":"6823388a77d52c19df28e0c0cd26be03db676ddd","commit_message":"bodyprog & misc: minor adjument to `README.MD` & BGM recognition and corrections\n\nthis commit mainly focus in mayor recognition and correction work for the BGM system, however, I also altered a little the front page notices.\n\nalso my first commit as an org, I hope everyone comes along well and we get vampbubbles SH2/3 decomps join and book of memories psvitacomp when","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360320,"matched_data":45480,"matched_data_percent":12.622113,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-05T19:44:22Z","commit_sha":"f2a6c7db19b53570f10c260c927ddd9a270138d0","commit_message":"Add missing spaces to license header","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45192,"matched_data_percent":12.541906,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-05T19:43:10Z","commit_sha":"11ab343413d382e8b792168f42bc579d7538dc0a","commit_message":"Remove some placeholder text from license","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45192,"matched_data_percent":12.541906,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-05T19:40:31Z","commit_sha":"f43fb49254ade2ea79eb12224f37082130cbc630","commit_message":"Add license header","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45192,"matched_data_percent":12.541906,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-05T19:38:11Z","commit_sha":"c482ba1ad6806aa791b456a86d4a217d5de1a42e","commit_message":"Add GPLv3 license to the code\n\nAs per the results of the following discussion: https://github.com/shdecompilations/silent-hill-decomp/issues/497","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45192,"matched_data_percent":12.541906,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-05T09:29:20Z","commit_sha":"7b9641d2b4c205c7d742b02e49b0f6fe57e21109","commit_message":"Bodyprog: misc. deobfuscation","measures":{"fuzzy_match_percent":99.994736,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45192,"matched_data_percent":12.541906,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-05T08:15:07Z","commit_sha":"cfdcf1d0196e90ef406282fc2c02d20daec5c9d1","commit_message":"Name fields in `s_Primitive`","measures":{"fuzzy_match_percent":99.994736,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45192,"matched_data_percent":12.541906,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-03T06:56:37Z","commit_sha":"dc3ee1f13166beb5f4d77515c0cabf344e179251","commit_message":"bodyprog: world drawing file movement + premature recognition/correction work on BGM system\n\nmoved some of the `world_` labeled files to a new path call `world/` which I aim to only use to cover core world initalization and main drawing functions since that is what can be found from `map_type_get.c` to `collision_trigger.c`, possibly this will change again.\n\nI did some minor corrections over the BGM system initalization and handling. It's premature, but I don't wanted to hold back the file movement I did as previously stated.","measures":{"fuzzy_match_percent":99.994736,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45192,"matched_data_percent":12.541906,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-08-02T02:52:11Z","commit_sha":"07fb6483b4fdd2027da8ed878d7b3160fb534db9","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.994736,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":319,"complete_units":0}},{"timestamp":"2026-08-01T22:45:07Z","commit_sha":"5853113495aa8398d0d50dc368761f0e674ab42c","commit_message":"bodyprog: mayor rename for world's graphic system\n\nsincerely I don't remember all changes done here, overall I focused in giving more generic/broad names to many parts of the code that handle world's graphics as the code range from code exclusively to handle IPD data to being a mixture of both the handling of IPD data and the game world draw functionallity.","measures":{"fuzzy_match_percent":99.994736,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":319,"complete_units":0}},{"timestamp":"2026-08-01T22:02:36Z","commit_sha":"491a74ca5d2d0448d6dbace0bcdba9c37eed2acb","commit_message":"adding missing symbol (`MapEvent_PoliceChalkboardInspect`) (#498)\n\nadding missing symbol","measures":{"fuzzy_match_percent":99.994736,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-07-31T16:34:09Z","commit_sha":"5176a49a10738e8153f8069f5c2c3c491f7e1464","commit_message":"IPD  struct fixups","measures":{"fuzzy_match_percent":99.99224,"total_code":2877980,"matched_code":2877756,"matched_code_percent":99.99222,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-07-30T16:52:19Z","commit_sha":"532fcac72dc1f72ea011d38e61510565b3cdf4d1","commit_message":"Update Kaitai scripts: `ilm.ksy` -> `lm.ksy`, simplify `ipd.ksy`","measures":{"fuzzy_match_percent":99.99224,"total_code":2877980,"matched_code":2877756,"matched_code_percent":99.99222,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-07-25T10:11:22Z","commit_sha":"dd76b455baf0cecfc4d0270270118acd0d714475","commit_message":"Add descriptions for map types\n\nCo-Authored-By: Laurynas Zubavicius <55561926+Sparagas@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99224,"total_code":2877980,"matched_code":2877756,"matched_code_percent":99.99222,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-07-23T09:22:38Z","commit_sha":"c6724be4c3cd0bc3cd517a8539793066d8b321bd","commit_message":"Bodyprog: `Collision_GroundProbeRadial` -> `Collision_WallPush`, docs and comments","measures":{"fuzzy_match_percent":99.992226,"total_code":2877980,"matched_code":2877756,"matched_code_percent":99.99222,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-07-13T16:03:55Z","commit_sha":"2715d7e2748d6a3a80122ad4ba6001082550e8ea","commit_message":"Update format scripts","measures":{"fuzzy_match_percent":99.9922,"total_code":2877980,"matched_code":2877756,"matched_code_percent":99.99222,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-27T04:22:32Z","commit_sha":"35cc659b96ca9e60bbac4cc9c884cb389b823c96","commit_message":"Renames related to Botany Book (White Claudia) (#494)\n\n* rename `func_800CD088` & `EventFlag_145` into `MapEvent_PoliceChalkboardInspect` & `EventFlag_M2S04_SeenPoliceChalkboard`\n\n* update `map2_s04_events_data.c`\n\n* rename `func_800CD088` into `MapEvent_PoliceChalkboardInspect`\n\n* rename `func_800CD088` into `MapEvent_PoliceChalkboardInspect`\n\n* rename `EventFlag_145` & `EventFlag_307` into `EventFlag_M2S04_SeenPoliceChalkboard` & `EventFlag_M4S01_InspectedChalice`\n\n* update `map4_s01_events_data.c`\n\n* rename `EventFlag_477` into `EventFlag_M7S00_BotanyBookReadable`\n\n* update `map7_s00_2.c` with new EventFlag names\n\n* update `map7_s01_events_data.c`\n\n* update `map7_s02_events_data.c`","measures":{"fuzzy_match_percent":99.9922,"total_code":2877980,"matched_code":2877756,"matched_code_percent":99.99222,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-23T08:02:22Z","commit_sha":"cad0aeefccbb5f1df84adde308704e129cdbb66f","commit_message":"maps: move funcdefs to unk_m3s03.h\n\nTODO: make separate headers for the other unk_draw_XXX.c map sources","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-22T02:25:09Z","commit_sha":"558350c3b6865f435e406b5db4d0f8b3a9804380","commit_message":"maps: merge 4 sharedFuncs","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-21T08:13:11Z","commit_sha":"014915d40fe84346c098312d61fba3179a3e8e2d","commit_message":"Maps: name funcs and globals","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-21T07:07:36Z","commit_sha":"9e7e0224d6dc5176509673741ffb3722d7d733c2","commit_message":"Maps: name event funcs and object globals, fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-20T16:47:58Z","commit_sha":"aa8afeb0c0e3983dfe7e3c810282ed1e7866e80a","commit_message":"Maps: name 13 M1S03 event funcs, comments","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-20T15:47:01Z","commit_sha":"c74ffd24cc3d6a9b39f29bb30a465c8d029863d0","commit_message":"Tidying pass, update names, deobfuscation","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-20T10:24:42Z","commit_sha":"b170ebfc13efa62c8b76d48d8ba7fbc06db92ce7","commit_message":"maps: make locker_dead_body.c","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-20T10:16:30Z","commit_sha":"bace5f7a9e24792b6fd18a30981902c4034b7345","commit_message":"maps: move 2 funcs to map_util.c, name saveload func","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-20T06:15:18Z","commit_sha":"9c00964add077e11f7f4f4ba6c50e330be1203df","commit_message":"bodyprog: premature renaming work for map data system\n\nContinuing my rework I ended regretting in my idea of changing the `chunk` term to other more properly calling the data stored, however, I did finally understood that `fs_ipd.c` handles in general the load and streaming of both IPD and PLM files.\n\nI renamed `g_MapTerrain` to `g_WorldMapData`, likely the `Data` suffix will be removed. I specifically pitched this name in other to make consistensy with `g_WorldGfxWork` and `g_WorldEnvWork`.","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-18T06:57:21Z","commit_sha":"87a9a29f0e5edc762891bd5bbad5a36178af025a","commit_message":"Update math macros","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-18T05:51:54Z","commit_sha":"b9699d409469013ff63e2fda1108b09330216561","commit_message":"Name things, const-correctness","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-18T05:48:31Z","commit_sha":"709864e4d094cb24bbd2122b79754bf378a73ac8","commit_message":"bodyprog: regression progress fix","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-18T05:37:13Z","commit_sha":"3141ed6be3b819650b5b6f2f17ccea99cdf1b46c","commit_message":"bodyprog: premature world graphic and map/IPD renaming/reorganization work\n\nSince all splits are likely sort out I started to work on rename and reorganize stuff in the next thing from the collision system which is the graphics. I specially focused in making more consistent names and name functions that looks they would used in general code, but they were actually only ever used for a specific purpose.\n\nMaybe some names aren't adequated either, but they are closer to what they are likely actually meant to be.\n\nAlso something that will be a horrible hurdle is correcting an improper term.\n\nChunks (the world space) is mixed up with IPD files loaded in memory. In theory the game should be able to load up to 4 IPD files at the same time, and the struct `s_Chunk` may actually confirm to that idea, but it is also confusing as I remember that the game also uses a subcell system for only drawing up to certain range of cells instead of loading the entire chunk.","measures":{"fuzzy_match_percent":99.961914,"total_code":2877980,"matched_code":2876884,"matched_code_percent":99.96192,"total_data":360328,"matched_data":45120,"matched_data_percent":12.521924,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-18T05:08:56Z","commit_sha":"8573f8f7eb0001a63ba99dedc2f82b9afb34c4c2","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-17T19:33:50Z","commit_sha":"7d8149544012d7df2a355dc59a3530c80310964c","commit_message":"bodyprog: ranking fixups","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-17T14:11:40Z","commit_sha":"d3597b15123564b8b3a944f420a744ff98430e1e","commit_message":"FP_MULTIPLY fixups","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T23:40:26Z","commit_sha":"5296efe2c10d415e974c9a27016823e4f77552a2","commit_message":"game: add SECONDS_60_FPS macro\n\nsimilar to TIMESTEP_60_FPS, but takes seconds and converts to 60fps\nframe count\n\nseems only a few places check frame counters to time things, all mostly\nlook like places where game runs 60FPS but not totally sure yet, may\nalso need SECONDS_30_FPS?","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T23:04:56Z","commit_sha":"c03a1a765d8a459a1fa44c11d60e03980a2f4f5d","commit_message":"bodyprog: add gameStateCounter","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T22:53:40Z","commit_sha":"3d7f39d01b27b8306ff14de337fba0f4a9e5beca","commit_message":"bodyprog: name sysStateCounter / gameStateStepCounters","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T22:02:25Z","commit_sha":"fb8590c906707244ce7fd885d385539d63607348","commit_message":"bodyprog: macroize Game_StateSetNext to allow more code to use it","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T21:39:54Z","commit_sha":"422c5e57d171ee5070b25da0ec5eb9695ca8f959","commit_message":"bodyprog: remove Game_StateSetNext_ClearStateSteps, comments","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T20:32:57Z","commit_sha":"fa18ac8e9873068eb57ccb474ce0f30f475be0e3","commit_message":"bodyprog: add Game_StateStepSet / Game_StateStepIncrement","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T18:37:20Z","commit_sha":"f1bb9343dd7c883f04aacb0cb575a37ea66396de","commit_message":"bodyprog: misc naming, add e_AudioStreamingState","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T18:12:44Z","commit_sha":"bde4800d9c33031d6a48561b12b1528f23a83938","commit_message":"bodyprog: name Vc_SetLookAtMatFromBoneCoord","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T17:08:23Z","commit_sha":"e9cd9881864d9e27a52f77e1c043fa86846c5c70","commit_message":"bodyprog: name Vc_IsInSelfViewRestrictedZone","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-16T10:11:21Z","commit_sha":"265a6260e7f1156c0c0d6811d7c56ce596d588b4","commit_message":"Demagicking","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-15T05:32:16Z","commit_sha":"76203b5e497bcc086b4a75e44f713d953d1134e3","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-15T05:31:45Z","commit_sha":"2e821f809096b6680d072954a422f30a9e3e9caa","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T18:57:45Z","commit_sha":"7fb460453e292ab2489240ace39ea4eefa5d6324","commit_message":"maps: AreaTransitionFlag_UnfreezeWorld","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T18:40:23Z","commit_sha":"4ccb4f48325d2303de4e8c3af1286f096fc12665","commit_message":"maps: add transition flags","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T17:31:52Z","commit_sha":"70bd2038a5d6cd9000ebeb52309690dc557a8f86","commit_message":"maps: events & map_points cleanup\n\nTrimmed empty values from map_points\nAdded indexes to map_points and events_data\nRenamed disabledEventFlag -> completeEventFlag\nRenamed pointOfInterestIdx -> mapPointIdx","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T14:12:43Z","commit_sha":"b927f46e2cc2084bf53d19851761599facb84355","commit_message":"bodyprog: name event flags for unlockables","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T13:01:39Z","commit_sha":"c74b57cc8e59bb31cebb21881aebb59ea57ed785","commit_message":"bodyprog: ranking naming","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T12:34:48Z","commit_sha":"d5e27dacd33fcad9074446a397243928ed890f71","commit_message":"bodyprog: name ranking vars","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T09:39:36Z","commit_sha":"30707517d9094280b7f66f9bd135e8868acf9324","commit_message":"TriggerType_None -> TriggerType_Tick","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T09:02:34Z","commit_sha":"b405743845cc64342c6f545980be2088b6620be7","commit_message":"credits: naming","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T06:25:27Z","commit_sha":"2ee8fa706e9c5d4ae604cf98c33543ff860482cb","commit_message":"bodyprog: code recognition","measures":{"fuzzy_match_percent":99.9872,"total_code":2877980,"matched_code":2877612,"matched_code_percent":99.98721,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-14T00:29:23Z","commit_sha":"9bb914c1cef01062136346c3806170565a7c6335","commit_message":"credits: naming","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-13T23:33:06Z","commit_sha":"9e37838a0bbd058995712edf4eea83ec7e8760d9","commit_message":"credits: naming, fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-13T22:55:27Z","commit_sha":"4552851e1776c00229e5acfc5cbc3a1df75ccc70","commit_message":"stream: garbage pad fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-13T21:32:06Z","commit_sha":"bb8c3f45bea46fe5af32e50a67e5adc269304c0e","commit_message":"naming_progress.py: generate docs/naming_reports/README.md","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-13T05:45:17Z","commit_sha":"24f2451002442d6f1bcc93ba1f582e023961e8da","commit_message":"Bodyprog: names, fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-13T02:14:42Z","commit_sha":"06324bed86e0649ef52b1ef68434c4791a2d282b","commit_message":"bodyprog: minor code recognition + minor file rearrangement","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-12T17:24:55Z","commit_sha":"b26eeb5910f48476948013dc8dcd73b24096c928","commit_message":"Fixups, names","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-12T09:07:33Z","commit_sha":"1a37ac85dd96aee535bef2a6050bd606b4ddfb54","commit_message":"main: fix JP builds\n\nbodyprog still needs fixes","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-12T05:39:16Z","commit_sha":"c137b7113f9c35f0462377bb83488c044d50f6e5","commit_message":"main: fsqueue fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-12T05:16:54Z","commit_sha":"6912d9ab4e1cda0ed57c5dbd3c17cd80f79386de","commit_message":"main: merge fsqueue_1/2/3 to fsqueue.c\n\nrodata order for these was fsqueue_3/fsqueue_2 while .text order was\nfsqueue_1/fsqueue_2/fsqueue_3\nseems we had to change rodata order because of the sim: string it used\nlooks like moving that to separate var can let us merge these together","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359988,"matched_data":44780,"matched_data_percent":12.439303,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":320,"complete_units":0}},{"timestamp":"2026-06-12T04:20:21Z","commit_sha":"e960995d1b46a2ea20626df89c7d2722777bbff9","commit_message":"Bodyprog: tidying pass","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44780,"matched_data_percent":12.439442,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-12T02:52:38Z","commit_sha":"eb4905001b96c71554e0a4d2603fbca2c03687eb","commit_message":"main: add _ramsize/_stacksize","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44780,"matched_data_percent":12.439442,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-12T02:39:17Z","commit_sha":"166bdbb43e11ac584abaa40396fef4f81ef7ba76","commit_message":"main: add snmain.s as hasm\n\nsnmain also showed that SBSS was meant to begin earlier, fixed rng.c so\ng_RngSeed would get placed there instead\n\nTODO: fix other regions","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359976,"matched_data":44772,"matched_data_percent":12.437495,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T23:49:14Z","commit_sha":"f107d5cd706bd36a75249294c254be26b280a1fa","commit_message":"bodyprog: forced pad alignment adjutments + ninja compilation fix\n\nchanged some of the alignment declared variables into a pad segment","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359976,"matched_data":44772,"matched_data_percent":12.437495,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T23:03:45Z","commit_sha":"c348e87e1da9af838437a74e43610928ee8cf7d6","commit_message":"bodyprog: rename lib_unk/lib_8009E198 to libkpad\n\nkonami pad lib","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T22:16:31Z","commit_sha":"12d6a2be3a987b1dc9feabc479b93de4a2e2f30e","commit_message":"bodyprog: add some doc comments to libkmath.s, name g_SineTable","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T20:39:30Z","commit_sha":"3f6198055947ef84ed88b6dc46513709feae1d32","commit_message":"Makefile: fix unintended change","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T20:32:08Z","commit_sha":"81f1028fc45cb1220f70633210ea9845a4b1f9fe","commit_message":"lib_8009687C -> libkmath, add asm to src dir as hasm\n\nkonami math lib, seems handwritten since it uses things no C compiler\nwould write\n\nhoping this won't break objdiff report..","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T19:58:23Z","commit_sha":"bf12e4dca7396306142589d6f9e0e2cab778f86b","commit_message":"bodyprog: func_800692A4 -> PaperMap_DrawScaled, fixups","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T08:09:04Z","commit_sha":"3fc8403e7e4a9f318b6599d1e212507fce0c570c","commit_message":"Bodyprog: Rename funcs, add constants","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T07:19:57Z","commit_sha":"39cc90e9e0d925abb53d2b4e3f2b7049539c2a0d","commit_message":"Bodyprog: `D_80028B94` -> `HARRY_WEAPON_ANIM_INFOS`, add field offset comments, trim suffixes","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T06:32:10Z","commit_sha":"3ad70e994dfd13445c99c981574ddcafdc20148b","commit_message":"Bodyprog: update names","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T05:59:15Z","commit_sha":"f92db5af9f0423771c2e7edc7154fed61f488c7a","commit_message":"match compilation fix","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T05:38:20Z","commit_sha":"58f70426e85f1031e4066e083db56f8ac1598314","commit_message":"bodyprog: more splits adjustments","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":322,"complete_units":0}},{"timestamp":"2026-06-11T05:35:52Z","commit_sha":"38cb1ce350023dddfae98a4b1d1cbea51e64aa02","commit_message":"Demagicking","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-11T05:14:35Z","commit_sha":"afc8006588872c7e4f1d7c6eaf1c08772fea086c","commit_message":"Update `Sd_PlaySfx` calls","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-11T05:08:05Z","commit_sha":"6bd42762fb836dc3cb7616b43a57521304a5208c","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-11T04:52:56Z","commit_sha":"d189226d867f084b29094d8e3ea668313f4ce9ec","commit_message":"Update bodyprog_mapscreen_80066D90.c","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-11T00:23:16Z","commit_sha":"e752e11ce1bc43a74cc117ad178748776d7cbe97","commit_message":"tools: postbuild update","measures":{"fuzzy_match_percent":99.99471,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-11T00:19:21Z","commit_sha":"73e7a24a160d0c2953f18d4582f0edeec7b5f485","commit_message":"bodyprog: match func_800692A4\n\nfinal game func ^^\nnow just one lib func to go..\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: dreamingmoths <dreamingmoths@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.99472,"total_code":2877980,"matched_code":2877828,"matched_code_percent":99.99472,"total_data":359984,"matched_data":44776,"matched_data_percent":12.438331,"total_functions":6527,"matched_functions":6526,"matched_functions_percent":99.98468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-10T16:41:20Z","commit_sha":"59849a8df6450f1fa92f03750d5716f33c26e221","commit_message":"Bodyprog: tidying pass, names, demagicking, comments, deobduscate `func_8005CD38`","measures":{"fuzzy_match_percent":99.94774,"total_code":2877980,"matched_code":2876476,"matched_code_percent":99.94774,"total_data":359992,"matched_data":44776,"matched_data_percent":12.438054,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-10T15:58:59Z","commit_sha":"7c2a102277fd7eb787e382c0aad29b7331cc6f54","commit_message":"bodyprog: sym fix","measures":{"fuzzy_match_percent":99.94774,"total_code":2877980,"matched_code":2876476,"matched_code_percent":99.94774,"total_data":359992,"matched_data":44776,"matched_data_percent":12.438054,"total_functions":6527,"matched_functions":6525,"matched_functions_percent":99.96936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-10T14:21:55Z","commit_sha":"ceefb570253b7f6c6e5d04f48eab6ed347d34cf8","commit_message":"bodyprog: match func_8005CD38\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.947044,"total_code":2877980,"matched_code":2876456,"matched_code_percent":99.947044,"total_data":359992,"matched_data":44776,"matched_data_percent":12.438054,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-10T05:46:24Z","commit_sha":"327523546e75c6fdc3a579d7f9e24b8e1bc275ba","commit_message":"bodyprog: more splits","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":360000,"matched_data":44776,"matched_data_percent":12.4377775,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":321,"complete_units":0}},{"timestamp":"2026-06-09T05:52:10Z","commit_sha":"78313fba708f90ada5b5cf82f64f742e36bd7030","commit_message":"bodyprog: more splits (item code)","measures":{"fuzzy_match_percent":99.863785,"total_code":2877980,"matched_code":2874060,"matched_code_percent":99.86379,"total_data":360008,"matched_data":44776,"matched_data_percent":12.437502,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-06-08T06:18:42Z","commit_sha":"a26f3cc45aa303bd3f65294f034da406d355cd2b","commit_message":"bodyprog: more splits and data migration","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348300,"matched_data":33068,"matched_data_percent":9.494114,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":318,"complete_units":0}},{"timestamp":"2026-06-07T06:17:50Z","commit_sha":"4f5ea4023394eddeeb966557339c71512c2c0bc6","commit_message":"bodyprog: split reorganization\n\nI went again to revise `/event/` splits.\n\nAgain I wanted to do something with `src/bodyprog/events/bgm.c` and so I finally checked what the last few functions does. The last function is related to text display but only in japanese version, thus in other releases becomes dead code. The preultimate function is actually used for something related to the initalization of BGM thus meaning that all this must be a single split, however there still in middle of the file some functions unrelated to BGM. I guess some TS dev was lazy that day and coded that quickly on the same file, made some todo to put it outside there and completely forgot. I ended also splitting and moving from folder `map_msg_display.c` cutting the last three functions to a different file.\n\nI renamed two splits from `/gfx/`\n\nAnd I renamed a few struct variables, the many changes in the map header is because I renamed `s_MapOverlayHdr::field_8` to `unused_8` as the only code that ever call it is completely unused (the one in middle of `events/bgm.c`).","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348284,"matched_data":33056,"matched_data_percent":9.491105,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":316,"complete_units":0}},{"timestamp":"2026-06-07T05:36:59Z","commit_sha":"782432b9c184c1c611338b657ea56f740aef3798","commit_message":"Bodyprog: collision deobfuscation, fixups","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":313,"complete_units":0}},{"timestamp":"2026-06-06T19:32:38Z","commit_sha":"56b7bf849399ac0b0fcd4dc54b96192ad33fc5ee","commit_message":"LoadSHOverlays: support demo versions, improve JPN symbol loading","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":313,"complete_units":0}},{"timestamp":"2026-06-06T06:24:14Z","commit_sha":"b9af02958c22d0cef90299d6e465e806974443f8","commit_message":"bodyprog: split distribution","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":313,"complete_units":0}},{"timestamp":"2026-06-06T06:04:42Z","commit_sha":"7490a44fee10b25c98025531b0bffbefd4799bd6","commit_message":"Bodyprog: collision ray fixups","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-06T05:11:12Z","commit_sha":"81f1332a62ea199efd13d258e42ffc368b68f7c2","commit_message":"Bodyprog: collision fixups","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T14:14:42Z","commit_sha":"a393f3789bf8884b1c58f8367cca9a68c85232a1","commit_message":"Bodyprog: collision names","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T13:59:13Z","commit_sha":"0d835548423d2a90ac957def402380c5e9ef22ec","commit_message":"Update ipd.ksy","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T13:52:13Z","commit_sha":"69e73a27a267b539db5fc17f02815438921e712c","commit_message":"Update ipd.ksy\n\nOffsets for newly added arrays are wrong, need to fix those.","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T09:15:16Z","commit_sha":"5c684225aea0d60215bbab058ebd50daac4adb69","commit_message":"Bodyprog: update collision func parameter names","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T09:11:15Z","commit_sha":"5f46753bc6f1f1a84261ba4b86e5561959b70d1f","commit_message":"Bodyprog: update collision terms, shorten local vars","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T08:28:26Z","commit_sha":"cbfc6fbadd5b38a4a1a537dc806ef2aab805745f","commit_message":"Bodyprog: revise collision","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T07:17:47Z","commit_sha":"3394db61e27370b45b8615a064c5499aa2cfb9e9","commit_message":"Fix build","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T07:07:54Z","commit_sha":"7eea7a4bf7e14098c3916da24f4dfa736611c769","commit_message":"Bodyprog: split `collision.h`","measures":{"fuzzy_match_percent":99.81251,"total_code":2877980,"matched_code":2872584,"matched_code_percent":99.81251,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T05:23:41Z","commit_sha":"cae118265b6023720b5cdb2139d3bda341cc2416","commit_message":"Bodyprog: rename collision files and functions","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T05:08:48Z","commit_sha":"8bf3d95abb938d247643e08395050d1db35a2e94","commit_message":"Bodyprog: tidying pass, comments, add `e_RockDrillAttackType`","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-05T03:50:41Z","commit_sha":"43a93538afb310fe42fdd8080f94863289b41f31","commit_message":"bodyprog: collision code splits & minor code recognition","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":348280,"matched_data":33052,"matched_data_percent":9.490066,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":312,"complete_units":0}},{"timestamp":"2026-06-04T09:07:00Z","commit_sha":"6a18f781f429278b9dc875926e7b12f075011c18","commit_message":"Bodyprog: fixups, collision deobfuscation","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351284,"matched_data":33052,"matched_data_percent":9.408912,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-04T08:22:46Z","commit_sha":"70083effea46ac31e41b19d55bd129f46dee5e09","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351284,"matched_data":33052,"matched_data_percent":9.408912,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-03T10:13:19Z","commit_sha":"247f507e755c44805d67c62cac90317c3e1845be","commit_message":"bodyprog: name g_MemCard_SaveIconTim","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351284,"matched_data":33052,"matched_data_percent":9.408912,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-03T06:17:40Z","commit_sha":"9e481e80a6ccbc6fdccddf4507758dc6f4433fa3","commit_message":"bodyprog: barebones collision system recognition + minor player information correction","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-02T21:21:21Z","commit_sha":"23da4888c5095948cedcd9cdbcf2390baffc531f","commit_message":"naming_progress: fix wrong segment names in some overlays","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-02T17:52:08Z","commit_sha":"00b7afb49088dacbd5ffbbba4fe4b2bd5b60f11a","commit_message":"naming_progress: show named in each TU, merge non-match into named/autogenned","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-02T02:10:31Z","commit_sha":"8792fc4a3a4b15df01b240db3e1541f09d4dd8e9","commit_message":"tools: fix naming_progress.py perms, readme","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-02T01:57:16Z","commit_sha":"25bb0b35cc8964beb2b2d7fe378747c0ababbe1f","commit_message":"naming_progress: generate docs/naming_reports/, accept ovl names\n\n`tools/naming_progress.py all` will regenerate docs/naming_reports/\nfor all overlays (except main)\n\nCan also run `tools/naming_progress.py bodyprog` or map0_s00/stream/etc\n\nYou could setup a bash alias to handle running this before committing:\n\nalias shfmt=\"tools/configs_formatter.py\"\nalias shrpt=\"tools/naming_progress.py all\"\nalias gadd=\"shfmt && shrpt && git add configs/ && git add src/ && git add include/\"\n\nGit hooks might work too, but think they might be limited to prevent\nstaging files by themselves? not sure","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-02T01:32:45Z","commit_sha":"ec0413090225b1ace616d5aabef33c8660162f76","commit_message":"tools: add html export to naming_progress\n\nMaybe can setup a git hook or alias to generate these when committing,\nhm..","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T17:43:30Z","commit_sha":"bd4949f2475b39fe737d8cc3e05c03436797d8d5","commit_message":"bodyprog: add Text_Debug_DrawDecimal, comments","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T17:18:46Z","commit_sha":"3d06de7549c2425957e7d11bc31e3ef736dc1aef","commit_message":"tools: show per-file progress in naming_progress.py","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T14:40:11Z","commit_sha":"49a5ec5e959559be74038088aaff2768ac476ed9","commit_message":"tools: add naming_progress.py","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T12:07:57Z","commit_sha":"557c0e865e81f4cfc0bfac17ae08b58a10d3f385","commit_message":"bodyprog: cleanup some single-file vars from header","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T12:07:06Z","commit_sha":"85a657385a759927bf307009ddb84ad3cb151772","commit_message":"bodyprog: cleanup some single-fix vars from header","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T11:33:29Z","commit_sha":"9702b8073743a42e7a608563d0d6b1e5a64c2ed8","commit_message":"bodyprog: sfx.c naming","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T11:04:11Z","commit_sha":"9f78b9911ee55d81290ab55286b3f69c3d6a1a46","commit_message":"bodyprog: move .data out of item_screens_3, TODO: fix JPN","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":32860,"matched_data_percent":9.35937,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T10:40:33Z","commit_sha":"77ae83a75134cfd60998aaba7769d14cf33a20f4","commit_message":"maps: sfx id fixups","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-06-01T02:05:45Z","commit_sha":"bddcab16182e195f5ae303d7d589f5bffa7e5fc2","commit_message":"bodyprog: collision system name corrections + minor premature documentation","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-31T05:22:39Z","commit_sha":"a9771ce4fceac57ce34630dd747da4d504c90f1b","commit_message":"bodyprog: more collision system recognition + minor fixups","measures":{"fuzzy_match_percent":99.87742,"total_code":2877980,"matched_code":2874452,"matched_code_percent":99.87741,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-31T05:18:30Z","commit_sha":"a82408a22e54ed489c68644762188a9961be6159","commit_message":"bodyprog: more collision system recognition + minor fixups","measures":{"fuzzy_match_percent":99.45337,"total_code":2877980,"matched_code":2862248,"matched_code_percent":99.45337,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6464,"matched_functions_percent":99.03478,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-31T04:26:32Z","commit_sha":"378f5fd18fea887b9a362b6c589585aa8b1b82c3","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T23:12:58Z","commit_sha":"d72949ebda31fcf80fa91fa2e79ad736001643ee","commit_message":"map4_s03: move twinfeeler to .c","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T22:04:01Z","commit_sha":"2502cef82d3536e00ff0b12027347bcea281d0a3","commit_message":"bodyprog: e_CutsceneBorderState","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T20:29:35Z","commit_sha":"1c0e26344ff86b371a645a58d9ada364b31b9674","commit_message":"events_util: e_ScreenFadeType, comments\n\nTODO: update callers to use ScreenFadeType enum","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T20:20:49Z","commit_sha":"9599ec71721830b1fdc8a5998ba518f66f04baa3","commit_message":"events_util: header comments","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T19:03:16Z","commit_sha":"206ed0f1e2f36cd3fd9be70ec30244ca17ba270e","commit_message":"events_util: Event_PaperMapCmd\n\nEvents don't ever seem to use the PaperMapCmd_Draw cmd here.\nMaybe func is only used to load the textures and different way to display\nthe map is used instead?\n\nOddly only paperMapIdx 0 & 1 are ever passed to this func, could be some\nleftover code for an older way of loading/displaying maps?","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T17:58:58Z","commit_sha":"92b7c54a8cb9290f23fc6487b5f23ca73b5a8ce1","commit_message":"events_util: Event_BgTextureFadeOut","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T16:03:26Z","commit_sha":"e82887a15b0604e2ac9474d3c16218a4930d9132","commit_message":"events_util: Event_WaitX names, map header func names","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T15:23:03Z","commit_sha":"57241467718e4720e5ea8cdc4fe5778fa39e3b85","commit_message":"Bodyprog: IPD deobfuscation and format docs","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T11:02:01Z","commit_sha":"069d28c15517753774eb9ea156c2e2634f34719f","commit_message":"Update Kaitai scripts","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T10:33:22Z","commit_sha":"a55b08c5a4921dc173710d87bb140951e10ea65c","commit_message":"Bodyprog: update `Event_CharaAnimCmdExecute`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T10:17:48Z","commit_sha":"343cd94c7cb27781e7e187592591ec342f2a5139","commit_message":"Event function doc fixups","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T09:03:57Z","commit_sha":"0b737f6d8aebde0fea9feae8240d76183da739fa","commit_message":"Event function docs","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T07:47:45Z","commit_sha":"677e6e0684f9a75dd26e5716cea174f4a2e66f36","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T07:11:37Z","commit_sha":"ab0457a79ccd4c5096892644a21c4acfb3e9038b","commit_message":"Tidying pass, add player constants","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T06:06:29Z","commit_sha":"c622cbd650d5b243200cce9eb62dee6cdee8d5a4","commit_message":"Bodyprog: update sound files","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T03:57:39Z","commit_sha":"b03da24f567b494d6a8e6c630a42dfb7f4cc7522","commit_message":"events_util: Event_Tween naming","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T03:30:29Z","commit_sha":"b912b9be544315a594895f226426ce49543eea9e","commit_message":"events_util: Event_PathWaypoint naming","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T02:55:01Z","commit_sha":"ad7d58f36e1d19ad54a87e161f8eabc07c4cdce5","commit_message":"bodyprog: move bodyprog_80085D78.c to events/events_util.c\n\nProbably not right path since this isn't near the other events/ splits,\nbut it works for now","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T02:09:23Z","commit_sha":"4b175561612f11257372159cc355b6defb890de2","commit_message":"bodyprog: event func naming","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T01:47:54Z","commit_sha":"c81cbecb2174ab4bd96009b7d16565450810eb82","commit_message":"bodyprog: move data","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29540,"matched_data_percent":8.413749,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-30T01:18:37Z","commit_sha":"c7f6bd2eb9c595fee8426d6f3277a9724d2a9925","commit_message":"bodyprog: Event_ScreenFadeCommand\n\nTODO: move e_FadeType to header, update callers","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-29T22:38:00Z","commit_sha":"d6b34ed217f160b226a479ced3274872530cca47","commit_message":"chara_util: rename ControlStateSet -> AnimStateSet\n\nSince these funcs are anim related, renamed to make it clearer\n\nSeems Chara_AnimStateSet writes to properties.npc.controlState while\nPlayer_AnimStateSet writes to extra.state\n(these NPC charas don't seem to have _Control_X funcs, field could\nprobably be renamed to animState)","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-29T22:10:14Z","commit_sha":"9f747a90f73f292f7941c3fb9e81e38e7a388d77","commit_message":"maps: chara_util.c fixups","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-29T18:26:52Z","commit_sha":"ce876080c799cd2a83e1d9d7b50a704739ca13e8","commit_message":"bodyprog: Event_InvItemCommand","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-29T16:30:17Z","commit_sha":"0147b9838feb5c0ea21a5f4a1e992c62326cd83d","commit_message":"bodyprog: move funcs to events_util.h, name Event_BgTextureCommand\n\nTODO: rename bodyyprog_80085D78.c, seems all of it is util funcs for map\nevents\n\nDon't really like how long some names here are though, would be nice to\nshorten them with the same meaning","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-29T05:57:36Z","commit_sha":"0b2fbbb69bef90bd7aba626b1d2a784faaab0500","commit_message":"compilation fix","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-29T05:53:39Z","commit_sha":"5767c350067cf33d2d3d9b8dc73d3d88140dbd64","commit_message":"bodyprog: more premature collision system recognition","measures":{"fuzzy_match_percent":99.877884,"total_code":2877980,"matched_code":2873120,"matched_code_percent":99.83113,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-28T15:48:49Z","commit_sha":"42e85d7f6e2a3ec672df24bf505adef85ee8d77d","commit_message":"Bodyprog: rename and move sound-related files","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-28T13:45:47Z","commit_sha":"c932c35ae17e9fcf3bc99d21ee0cb2d627a40d7f","commit_message":"Bodyprog: name SFX functions, add `bodyprog/sound/sfx.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-28T11:37:32Z","commit_sha":"84b8b7b32118b0a8d289c9f73b4d6f9a953222c6","commit_message":"Bodyprog: use `e_SfxFlags`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-28T10:28:21Z","commit_sha":"ffe6ca0fb890cb87dd48a2a533c513a6003a6706","commit_message":"Bodyprog: audio deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-28T09:25:19Z","commit_sha":"b983ea95d8c02962f413d601eb90dbcbda0fbfeb","commit_message":"Name globals","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-28T07:38:17Z","commit_sha":"1f4820a4f96ca24b02301f8f66d89b4d7f5900a3","commit_message":"Bodyprog: name anim-related funcs and fields","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-28T06:09:36Z","commit_sha":"167e23a0f8fc1301e9bb4c06be285407aec129a4","commit_message":"Bodyprog: mark potential collision splits, name fields","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-27T21:20:30Z","commit_sha":"5849ca64fb9ed93e507eb624d40355fb683ffaee","commit_message":"bodyprog: name event SysState funcs, unify Event_ func names\n\nThese all seem to be only called by map events, so seemed best to keep\nthem under same Event_ system\nMapMsg funcs now also follow same `Event_DisplayMapMsg...` naming","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-27T17:58:41Z","commit_sha":"66c0be452707d20292a64215446f16ee46cbeafe","commit_message":"bodyprog: rename func_80085EB8 to Event_CharacterAnimCommand\n\nOnly really used in map events (and some bodyprog callers which are also\nonly called from events too)\n\nTODO: Figure out cmd 1 and 4, maybe move to an event.h with\nEvent_CutsceneTimerAdvance and other funcs only called by map events","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-27T17:33:30Z","commit_sha":"0d2f01758699a453278c00e718148c5a7c2e7f48","commit_message":"Bodyprog: add `e_LensFlareType`, names","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-27T10:59:15Z","commit_sha":"e7b5db877097f2e5ce7b9c2edbfe18eeec780352","commit_message":"Bodyprog: collision pass","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-27T10:18:45Z","commit_sha":"6f78251597dd3f44443209663e1b56938c547538","commit_message":"Bodyprog: name a function, docs, demagicking","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-27T05:58:18Z","commit_sha":"9e49ff55a4cd475f14e8fea1d87b4be9cef86bcd","commit_message":"bodyfrog: more premature collision system recognition","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-26T19:59:26Z","commit_sha":"05c3212820623e6496637776a9474167c4b17f4e","commit_message":"maps: rename SysWork_StateStepIncrementAfterTime to Event_CutsceneTimerAdvance\n\nStateStep increment was optional, the timer change was probably more\nimportant.\n\nSeems this func is used to decide the speed/framerate of the cutscene,\nbut it does get some odd rate values like 7.8f, not sure why it'd\nadvance .8 of a DMS frame per second, weird","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-26T01:41:07Z","commit_sha":"0efadfefa383ad701d0ed973c46e2665d317bb02","commit_message":"Bodyprog: more premature collision system work\n\nI also noticed that many functions have improper fixed points type attributed to them as they are marked as \"Q12\" when they are actually `Q8`","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T11:45:39Z","commit_sha":"b52db592ecf994daa2c8f5e362bc5a1404763843","commit_message":"Bodyprog: header sorting","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T10:51:31Z","commit_sha":"dddd59e1c05e1a329052329e8036bbc3b9f8ea32","commit_message":"DMS: simplify, fixup names\n\nrenamed intervals to segments\nDms_CameraKeyframe -> Dms_Keyframe as characters also use these funcs\nRelKeyframe -> Keyframe (indexes into the DMS data), absKeyframe -> frame (frame idx based on game time)\nsvectors -> holdRange, seems used for packing a range of frames into a single keyframe","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T09:36:00Z","commit_sha":"742e05318d75be518d3fc734c8bc7d978b43f7db","commit_message":"Format KSYs","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T09:35:08Z","commit_sha":"a8ad3ef71170435522a70e59b37afc53ae783cc6","commit_message":"Bodyprog: move things to `bodyprog/savegame.h`","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T08:47:37Z","commit_sha":"3e001cb542ffa12783e52ad793279f5e69cb4f69","commit_message":"Add Kaitai format scripts\n\nCo-Authored-By: dreamingmoths <252494949+dreamingmoths@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T05:51:35Z","commit_sha":"72e2a7509648f71f7a1ba924b60f83d64467325e","commit_message":"Bodyprog: player deobfuscation","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T05:17:38Z","commit_sha":"b28d600e8a1652ccc3fdffe5d4b4a9df38c33c97","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-25T04:28:34Z","commit_sha":"fbfb70f0afbabccd7aab13339e5b6a084b90c16a","commit_message":"Bodyprog: name function, name local vars, demagicking","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-24T08:16:47Z","commit_sha":"1505c3e64ca2ccde0a5a1d80df748eeabf9d390b","commit_message":"Bodyprog: general demagicking","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-23T16:31:19Z","commit_sha":"0664bf1fceb2cb5ef1735a903fb461c5e386730c","commit_message":"Move macros to appropriate headers, add character enums","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-23T03:24:25Z","commit_sha":"5b5b26b631e0af31f9c236020bf885f8176eb946","commit_message":"bodyprog: match sym.txt name","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-23T02:07:01Z","commit_sha":"3526ff7fc4278edf4d0bac40c913f7bed4488ecb","commit_message":"maps: make Chara_Incubus/Chara_Unknown23 splits","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351092,"matched_data":29484,"matched_data_percent":8.397799,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":308,"complete_units":0}},{"timestamp":"2026-05-23T01:47:58Z","commit_sha":"4a826d3d20951b510e3bd0ef3049cc510c2ec3fe","commit_message":"maps: make Chara_Cat/Chara_LittleIncubus splits\n\nMoved some map7_s03 funcs into unknown23.c, seems the chara code calls into\nsome of them (and the funcs chara code calls into use globals that other\nfuncs there also access)\n\nMight be able to move some map7_s03 code into incubus.c too, but there's\na lot of it there above incubus.c include, and some of those are called by both\nincubus/unknown23, so might just be some map-specific funcs instead?","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":305,"complete_units":0}},{"timestamp":"2026-05-23T00:45:35Z","commit_sha":"e1b01a16e0c57e351b4510e2a4fd10f97e3aad63","commit_message":"map7_s03: move extern to little_incubus.h","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-23T00:40:14Z","commit_sha":"04573d1913f4e6bc358272948391735d5ac2bd8d","commit_message":"maps: move Incubus/LittleIncubus/Unknown23 to .c\n\nHopefully last of the charas that need to be moved\n(now just need to setup proper splits for them, had lots of rodata\nissues with that before tho :/)","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-23T00:15:14Z","commit_sha":"19764533fbd853080f6f361b40721e39d9a89553","commit_message":"maps: move BloodyIncubator/GhostDoctor/Incubator to .c","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T16:27:19Z","commit_sha":"f2679e196c17911b47388ae4861c70f96d8403c8","commit_message":"Bodyprog: update math macros","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T15:02:23Z","commit_sha":"c725a884eb288fc59f883d924cc253d76b6a79ca","commit_message":"Bodyprog: update collision structs","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T14:36:23Z","commit_sha":"ba99688e9dd854eabac3bc5f787856cc232d516e","commit_message":"Bodyprog: move collision func decls to appropriate header","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T14:05:05Z","commit_sha":"d48fe6e1ef53c6daf4fdd5d47265d26d8e9e39d1","commit_message":"Bodyprog: add collision constants","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T13:05:33Z","commit_sha":"3ef5d109f1b7e1dc6352fc68abe83abf983ba6d9","commit_message":"Bodyprog: comments for `Collision_CeilingHeightGet`","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T12:08:35Z","commit_sha":"ebe538779bd9b4c0f7248acd11c621fe0fcb6df7","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T09:34:43Z","commit_sha":"2aa84218fc85cf9e313d48d7e49e732953e48cf8","commit_message":"Bodyprog: `D_800C489C` -> `g_Demo_IsLoadingChunks`","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T09:26:11Z","commit_sha":"43228b700272621ce7b1b4f08dcff427c09dbfd3","commit_message":"Bodyprog: trim struct field suffixes","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T09:22:06Z","commit_sha":"288a8870c0c72d412ad1dca916083af4dc550173","commit_message":"Bodyprog: trim struct field suffixes","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T09:00:50Z","commit_sha":"6358092d5adf557ffd64c2ece99004a6fb5d9ed1","commit_message":"Bodyprog: `s_Collision` -> `s_CollisionSurface`","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T06:30:17Z","commit_sha":"8069beefdae2782e339cbdeea9cf6368468ad4b8","commit_message":"Maps: name character collision update funcs","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T06:25:10Z","commit_sha":"87f47ed19771ef71c26373d18aa2342383e1204a","commit_message":"Bodyprog: unify `Chara_CollisionSet` variants, name funcs","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T06:24:50Z","commit_sha":"c3c91f224c05f197883e36a1024d5b9fa62c69c1","commit_message":"Bodyprog: unify `Chara_CollisionSet` variavariants, name funcs","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T06:03:58Z","commit_sha":"42381ed4f0be101cc6d73943c279521d9648a2a9","commit_message":"bodyprog: more premature collision system recognition work","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T05:58:31Z","commit_sha":"cb04d53716f06717ef93b2e1809d3e7f4092e797","commit_message":"Maps: Monster Cybil character demagicking","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T05:29:08Z","commit_sha":"c9089dfa9aef48f39fda11692f787a388a0306e9","commit_message":"Maps: character updates","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T04:05:55Z","commit_sha":"220d1666cf810eb38ed4df3ca49ec57d569e4f43","commit_message":"characters: misc properties fixups","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T02:20:24Z","commit_sha":"b50483846a04afe85f893a4521c1dc7ba31d114f","commit_message":"characters: add Chara_AnimUpdate macro","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T02:06:53Z","commit_sha":"2930202ee1d75d74f96fbd2e2662c98b50bb8ea7","commit_message":"Incubator: move properties to s_PropsNpc, fixups","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T01:52:30Z","commit_sha":"673d92b0581ec83f7a96e00e06eb7143eca466f2","commit_message":"MonsterCybil: use Chara_AnimStateReset inline","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T01:40:15Z","commit_sha":"35a2fdf090648ba16e4fe5a272adddc5359feb51","commit_message":"MonsterCybil: merge properties into s_PropsNpc\n\nSome of the uses are a bit weird, eg `monsterCybilProps.resetControlState`\ngets used as a timer here, while other NPCs use it as bool.\n\nBut in the same file, `monsterCybil->properties.npc.resetControlState`\ndoes seem to treat as a bool?\n\nmonsterCybilProps points to `g_SysWork.npcs[0].properties`, wonder if\nnpc[0] could be a diff chara...","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T01:17:12Z","commit_sha":"a182b708eadc0af0ed27bf00c155f6660d79f91e","commit_message":"maps: merge NPC properties into s_PropsNpc\n\nAffects Alessa, BloodyLisa, Cheryl, Cybil, Dahlia, GhostChildAlessa, Kaufmann, Lisa\nThese all seem to use a common properties struct based on all of them calling into `sharedFunc_800D908C_0_s00`, which assumes a single struct for them.\nTODO: MonsterCybil also calls that func, need to try working that in too.","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-22T00:43:14Z","commit_sha":"f3a707ec5e92005940c650dea6e29383ddb5ea58","commit_message":"PuppetNurse: move func decls to puppet_nurse.h","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T23:51:09Z","commit_sha":"89725a242808c7fa03a8f50bf1ff3913bb3cf825","commit_message":"PuppetNurse: properties fixups","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T23:30:35Z","commit_sha":"b7d3311c60c652e66201eccec4346b668a014e81","commit_message":"map5_s00: enum fixups","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T23:24:06Z","commit_sha":"ea19d4957d3400446ea232cc90d9408e39898d0c","commit_message":"Cat: add s_PropsCat","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T23:08:44Z","commit_sha":"68d35515328ddc366ed3c57248c2fa13c0ea99a8","commit_message":"Floatstinger: properties fixups, clang-format","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T13:07:42Z","commit_sha":"337ff96d4711f66dbbadc98307aacfaab555abf9","commit_message":"Maps: Ghost Child Alessa character fixups","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T11:59:54Z","commit_sha":"525c56fc3ac944355cd30a1638cb621fd579e030","commit_message":"Maps: rename Ghost Doctor func params","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T11:55:41Z","commit_sha":"f9d8be27255ee506bc307a14afbbfe4e08abf315","commit_message":"Bodyprog: add `events/collision_trigger.h`, add character enums, various fixups","measures":{"fuzzy_match_percent":99.876816,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T09:46:01Z","commit_sha":"62cc3903baf4327bba7d197a73a72cbd87d64aa3","commit_message":"MonsterCybil: properties fixups","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T05:31:47Z","commit_sha":"1ef617d7cfa6c9cd8b942986d94070c69a309479","commit_message":"Bodyprog: sort out collision triggers","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T04:22:56Z","commit_sha":"f91ff656ca60173406fc343fd95b8344a6eea50c","commit_message":"MonsterCybil: migrate rodata","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T03:15:08Z","commit_sha":"c2b605aa5b0ba25c0b01881669f9521a5696799b","commit_message":"maps: move cat/flauros/parasite to .c files\n\nNot shared in other maps, but probs best to copy how other charas are treated\nMaybe makes it easier to add them into other maps","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-21T03:01:40Z","commit_sha":"c2697f638f3ebc84d9e972984dbc85a116d21149","commit_message":"MonsterCybil: rename extraModel params to modelUpper, clang-format\n\nUsed for upper anims based on func_800D99E4, same kind of thing as\nharry?","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-20T22:03:23Z","commit_sha":"329b9c46080f75a7fac8b5b34b376b6c0b49100d","commit_message":"map4_s05: move floatstinger to .c\n\nTODO: make separate split in map4_s05","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-20T21:41:26Z","commit_sha":"2cb1d8eff6b7f25a0aabd993bd3caef00977b1ae","commit_message":"MonsterCybil: fixups","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-20T21:25:25Z","commit_sha":"237bd3dee2fcd7baf107cf9ac3441ae17198baf5","commit_message":"map6_s04: move MonsterCybil to monster_cybil.c","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-20T06:16:54Z","commit_sha":"1c89dc7c5f6c7c5151bfe9b874709304cdb149e4","commit_message":"bodyprog: more premature collision system recognition work","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-19T09:17:45Z","commit_sha":"98f12fa7e74078c1723826ae019fa9522f6dc325","commit_message":"Bodyprog: name funcs, misc. deobfuscation","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-18T13:29:20Z","commit_sha":"48c5cc1f44a5f8806ae5d5383531aa6d18e76a77","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-18T07:53:58Z","commit_sha":"f931cc226b98ce5bf30f9f5c83da3876c10f812e","commit_message":"Bodyprog: trim suffixes, collision comments","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-18T06:26:30Z","commit_sha":"dc804893b67e06b45dc61c9c7b59d2a20e164152","commit_message":"Bodyprog: more premature collision recognition work","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-18T05:26:08Z","commit_sha":"3880ad80128f9ab4373d7dfe8e485868cbb3827a","commit_message":"Maps: simplify M6S04 with macros","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-17T17:12:27Z","commit_sha":"e590e6537060e662026652e4600ac1c67510dd2d","commit_message":"Add math macros, tidying pass","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-17T13:10:03Z","commit_sha":"256d9f70d6a44112c92e0e71ea9cf895764341c0","commit_message":"Bodyprog: demagicking, remove inappropriate newlines","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-17T10:16:56Z","commit_sha":"3716fe62a6f4ad919508da09b2fd4dbb1e639a19","commit_message":"Bodyprog: apply magnitude calc math macros, demagicking","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-17T08:53:04Z","commit_sha":"cc0f3e12113ef8814163d3401bf0ad04fba14b71","commit_message":"Bodyprog: add math macros","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-16T13:22:07Z","commit_sha":"eca57a0c1b7471eff5d940d9c5a9e96e5ced140c","commit_message":"Bodyprog: substitute types where appropriate","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-16T12:26:56Z","commit_sha":"5325b74533cf5090fa0611c7a631b572321ba558","commit_message":"Bodyprog: update IPD functions","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-16T08:00:51Z","commit_sha":"2c9e380c11548d1626141de12c7845d6c1b7b8f6","commit_message":"Bodyprog: add `bodyprog/events/map_msg.h`","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-16T07:34:30Z","commit_sha":"af5991c76a0c7f8273be204a4ba4275382f60e63","commit_message":"Maps: rename unused field","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-16T05:35:49Z","commit_sha":"4f0e3dd6e3ef9b9bb9166b0ac2b0fb29e4f521f4","commit_message":"Bodyprog: More premature collision documentation","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-16T05:08:10Z","commit_sha":"f7fedc3ce640bc8c50278f4b27259c8b02e59847","commit_message":"Maps: demagic map point loading screen IDs","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-16T05:06:11Z","commit_sha":"a17e04ec955e433cf324bca1e942ac871f1c4f01","commit_message":"Maps: demagic map point paper map indices","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-15T16:08:35Z","commit_sha":"d15fff8dd050d8ceb1c24165d6d8c6da617663a8","commit_message":"Bodyprog: names","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-15T14:48:03Z","commit_sha":"6ac3bfdf5e224be765e77f69fef345d919ba5194","commit_message":"Bodyprog: `Game_NpcUpdate` deobfuscation","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-15T13:52:58Z","commit_sha":"08c635cb1f4b35bc8022ac7d282c69f042ca3415","commit_message":"Bodyprog: `CharaFlag_Unk9` -> `    CharaFlag_NoRadioStatic = 1 << 8`, simplify loop","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-15T11:50:52Z","commit_sha":"e0dca4b7138304f9ad378c542c281bf8dddd4c5e","commit_message":"Bodyprog: update character animation data func docs","measures":{"fuzzy_match_percent":99.87683,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-15T05:44:49Z","commit_sha":"ecffc4e7628c982b12c70791502573623e442c96","commit_message":"Bodyprog: update character animation  FS code","measures":{"fuzzy_match_percent":99.87684,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-14T16:03:52Z","commit_sha":"1cd01fdcb236eeba062068db4f62c1c3875c8be8","commit_message":"Bodyprog: add `bodyrog/chara/spawn.h`, fix progress","measures":{"fuzzy_match_percent":99.87684,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-14T15:05:10Z","commit_sha":"60516e6ecbd211b0596c510e4c421b207b451016","commit_message":"Bodyprog: add missing comment","measures":{"fuzzy_match_percent":99.871,"total_code":2877980,"matched_code":2874268,"matched_code_percent":99.871025,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-14T14:46:07Z","commit_sha":"4d18742eb7a11294cba2d5ccf66e5b60c8be284f","commit_message":"Bodyprog: name sys flags enum entries","measures":{"fuzzy_match_percent":99.87102,"total_code":2877980,"matched_code":2874268,"matched_code_percent":99.871025,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-14T10:40:24Z","commit_sha":"115f1f853382f35f2208352dc7a63b6c01ec093d","commit_message":"Bodyprog: more organising","measures":{"fuzzy_match_percent":99.871,"total_code":2877980,"matched_code":2874268,"matched_code_percent":99.871025,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-14T10:09:49Z","commit_sha":"83a956ce9fa7c9f7ee0808ec782dc714990b904f","commit_message":"Bodyprog: more header organisation","measures":{"fuzzy_match_percent":99.87102,"total_code":2877980,"matched_code":2874268,"matched_code_percent":99.871025,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-14T06:28:38Z","commit_sha":"62e8b55a4f2306d0ceba30c1201cd26f4e3855fe","commit_message":"Bodyprog: struct field renames","measures":{"fuzzy_match_percent":99.87102,"total_code":2877980,"matched_code":2874268,"matched_code_percent":99.871025,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-14T05:41:27Z","commit_sha":"8e1254d563fc7aa1c4eef8ae8d6778599454b6ad","commit_message":"Bodyprog: move enums and structs","measures":{"fuzzy_match_percent":99.87102,"total_code":2877980,"matched_code":2874268,"matched_code_percent":99.871025,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T17:19:55Z","commit_sha":"cd9ddd37421bf34d376151889261c3427492bcfb","commit_message":"Bodyprog: add `bodyprog/chara_model.h`","measures":{"fuzzy_match_percent":99.87684,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T16:48:52Z","commit_sha":"7772952794cf5869fc554b4b5601f12d2fb57ad2","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.87684,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T16:29:59Z","commit_sha":"5d62f72e975ab7aec93ab996d16c02b54ef6f1b9","commit_message":"Bodyprog: more header reduction","measures":{"fuzzy_match_percent":99.87684,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T16:13:14Z","commit_sha":"9434c6e195b4ef066d0800e86b61a2207c8ee6dc","commit_message":"Bodyprog: rename structs and fields related to map terrain","measures":{"fuzzy_match_percent":99.87684,"total_code":2877980,"matched_code":2874436,"matched_code_percent":99.876854,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T15:38:01Z","commit_sha":"c9ade6e32967ba3b81532c79a524acfde57a8c47","commit_message":"Bodyprog: add `bodyprog/map/terrain.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T15:29:16Z","commit_sha":"ac7ec1a31f68fedde7a52733298e777d2311d5c8","commit_message":"Bodyprog: struct details, `s_Map` -> `s_MapTerrain`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T14:35:45Z","commit_sha":"95bb148defe624c98808aa08665c6f2f6de1823c","commit_message":"Bodyprog: further `bodyprog.h` reduction","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T13:39:43Z","commit_sha":"1a2c526cf5f9a079633606a58a6ef695070b393b","commit_message":"Bodyprog: add more to `bodyprog/collision/collision.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T11:35:45Z","commit_sha":"7788adcc7825b9c961cd8784c6cea2960fd40ac1","commit_message":"Dehexing","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T11:04:33Z","commit_sha":"79e5bd6e7299823182bb23b5f6268f178812596f","commit_message":"Bodyprog: update `bodyprog/map.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T10:46:01Z","commit_sha":"11700bb3a6fcaa5255be012a0087d6a74ed03452","commit_message":"Bodyprog: add `bodyprog/map.h`, move `collision.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T10:13:13Z","commit_sha":"0a3905722a01504a95bd135a047f1352e550b482","commit_message":"Bodyprog: add more to `bodyprog.chara.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T09:28:24Z","commit_sha":"e10f07c5d37b5206b3678ee29bf818ed8ea69a8c","commit_message":"Bodyprog: add `bodyprog/chara.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T08:45:44Z","commit_sha":"5a20fd89c8c0fdfb8a3d2f61d37b6d6495c34ff1","commit_message":"Bodyprog: add `bodyprog/items.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-13T08:22:45Z","commit_sha":"927239477c9ca62663cd469122348f4b0d9cd4b5","commit_message":"Bodyprog: split big headers","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-11T14:58:58Z","commit_sha":"a4981d64fa6932b3a87abd8d6012ef73c6002a49","commit_message":"Maps: update Alessa character","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-11T05:41:33Z","commit_sha":"7211ee67abc8035fc18121e751d1423b0f246bf1","commit_message":"Bodyprog: name collision struct field","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-10T14:43:57Z","commit_sha":"30c6314c61cf8a128299c9d76c9739041a9a9581","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-10T13:44:13Z","commit_sha":"9db065c177171674d71aa225516e4ec3467b1664","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-10T10:02:07Z","commit_sha":"d86fa34417b6da17a0675b74c9dd63d59ab89dd6","commit_message":"Bodyprog: add `Player_CollisionReset` inline","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-10T09:46:24Z","commit_sha":"0db43564df801d1dfa73513555cf71ec6952e52d","commit_message":"Bodyprog: player combat deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-10T08:28:04Z","commit_sha":"2e0082d49e288165330b5480b9cee1b5d9722d2c","commit_message":"Collision: minor deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-10T06:03:53Z","commit_sha":"1836c669f1b85993fe22b7d9c98308d43bf60d81","commit_message":"Collision: ground type deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-10T05:04:38Z","commit_sha":"505ab1affc9a1439b86a1f030df7f95230229868","commit_message":"Update math macros","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-08T02:31:50Z","commit_sha":"7adf8cf5f0ce15a8a5dcf94d5067e5b2feea6582","commit_message":"Maps: Split Head progress, fixups","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-07T06:09:26Z","commit_sha":"0bb2b308b87c03448b65e8c4029fed795685f0e3","commit_message":"bodyprog: merging files and early personal recognition work on collision system\n\nh","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":302,"complete_units":0}},{"timestamp":"2026-05-06T05:34:57Z","commit_sha":"7e30daa416b91ac9f7e2642f6ed21bcaaf99ed7f","commit_message":"General fixups","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-05T14:31:26Z","commit_sha":"612f48bf4d1ca34ccd67bc3098f99cc1c5365a5f","commit_message":"Maps: Groaner character deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-05T10:07:28Z","commit_sha":"a9809e3cb5450343853f3e519fcd67ad148d5a02","commit_message":"Maps: Groaner deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-05T09:39:47Z","commit_sha":"cab47ba7971e842d490c5994cd98196b9ff366e4","commit_message":"Maps: name Groaner control states","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-05T09:19:52Z","commit_sha":"0ac7a81d27a372c06b899783612bbf1f5d5f0b52","commit_message":"Maps: name Groaner anims, docs, add character control state enums","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-05T07:32:30Z","commit_sha":"9896a46c7f5dd08c767dfa90f86a21ff62b2037e","commit_message":"Fix build","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-05T06:03:52Z","commit_sha":"cc1575c689dc1b61b3811cadcd8db32821ae128f","commit_message":"Maps: `air_screamer` func name fix","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-05T04:16:50Z","commit_sha":"5bda4099d49ab8dbd83fb87d749dc26a9ac808ce","commit_message":"Maps: trim `Ai_` prefixes from funcs, Air Screamer pass","measures":{"fuzzy_match_percent":99.84335,"total_code":2877980,"matched_code":2873472,"matched_code_percent":99.84337,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6514,"matched_functions_percent":99.80083,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T15:57:34Z","commit_sha":"8f0efecaef342fd3eec269f9c9cb89a593d4dde4","commit_message":"Maps: Air Screamer progress, misc. deobfuscation","measures":{"fuzzy_match_percent":99.84335,"total_code":2877980,"matched_code":2873472,"matched_code_percent":99.84337,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6514,"matched_functions_percent":99.80083,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T13:43:10Z","commit_sha":"3b1ec1fb577379be03ef4aae66a60d55fe05b843","commit_message":"Maps: name and demagic `e_AirScreamerDamage` entries, trim func prefixes","measures":{"fuzzy_match_percent":99.84335,"total_code":2877980,"matched_code":2873472,"matched_code_percent":99.84337,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6514,"matched_functions_percent":99.80083,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T12:55:00Z","commit_sha":"2e5de02c13632da128f7214bf428d29d5ad22338","commit_message":"Maps: name Air Screamer funcs, demagic anim indices","measures":{"fuzzy_match_percent":99.84335,"total_code":2877980,"matched_code":2873472,"matched_code_percent":99.84337,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6514,"matched_functions_percent":99.80083,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T11:37:12Z","commit_sha":"11711e46e33c92831e5d863fcf2598dfc99c0ab1","commit_message":"Maps: move Air Screamer character func decls","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T10:19:20Z","commit_sha":"545453d6f0faf4a8b0533df5c00b2309b34857c7","commit_message":"Maps: demagic BGM flags","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T09:33:02Z","commit_sha":"b25fd98d347e4e4538b86280a9a7696f101d056f","commit_message":"Bodyprog: trim `s_MapOverlayHeader` field suffixes","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T08:27:51Z","commit_sha":"3261777f7090ca3f3b18277ba0c82ffbecc928c1","commit_message":"Bodyprog: add `s_Fog`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T06:10:30Z","commit_sha":"c84e72dcdcc452ce98973a33610ca3b776db2d8d","commit_message":"Bodyprog: name point light funcs, docs, update structs","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T05:53:42Z","commit_sha":"c16d80840d611e1c023868c1e2b6a6c4cb48e9c1","commit_message":"compilation fix","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-04T04:00:24Z","commit_sha":"1cdf326ea8f61eeedf5fea0975ff7ce9b2637547","commit_message":"misc: windows compilation fix\n\nI took off `mcpp` since we have `gcc` compiler inside.","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-03T16:47:50Z","commit_sha":"fb0426aaf6d936a6da2fe329b7ab7fbaa88ebebb","commit_message":"Bodyprog: IPD func name updates","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-03T15:20:37Z","commit_sha":"bc856ed1a2d214551b34c540bcaf8a9687fa7b8c","commit_message":"Bodyprog: name funcs, collision docs","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-03T07:56:02Z","commit_sha":"aefe1a7fb09a5c84ba96f4606236b1b7b18c3473","commit_message":"Bodyprog: trim struct field suffixes","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-03T06:26:14Z","commit_sha":"f0e8cceba5b7a037478b0e7bccead7b305da8d39","commit_message":"bodyprog: `memcard_2.c` recognition work","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-02T13:39:51Z","commit_sha":"c10a6deb36c7d9305341ec87dd70316e41e14590","commit_message":"Bodyprog: naming","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-02T07:09:26Z","commit_sha":"31b1b01f46b66948c58e7aa51132aeb28a0967a7","commit_message":"Bodyprog: trim struct field suffixes, name fields","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-02T05:45:25Z","commit_sha":"8fae1f5d5fdd984a82a8d5f2ffa01fd79f3f2e03","commit_message":"Bodyprog: name struct fields, comments, tidying pass","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-02T04:56:33Z","commit_sha":"8b16d72ead97be4d1080ad480a77e892b52d6a03","commit_message":"Bodyprog: `memcard_2.c` recognition work\n\nAlso made some other comments on other small stuff here and there, and minor corrections on some stuff I noticed","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-01T15:52:29Z","commit_sha":"47116ca2d4a44c3f0251d9058fdac3c776f2f28f","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-01T15:19:30Z","commit_sha":"c28e8361e4b2d539b20dc6bc4dc16c09c4d873be","commit_message":"Bodyprog: name local vars, demagicking","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-01T14:05:16Z","commit_sha":"480f388ba9edc1207099c86d5b00347c8ee3e8bd","commit_message":"Bodyprog: update `collision.c`, trim `s_Savegame` field suffixes","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-01T07:21:27Z","commit_sha":"0b9ce1848cb93918edefd369e17520e7d822c500","commit_message":"Bodyprog: name and document ray funcs, tidying pass","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-01T06:54:57Z","commit_sha":"67783dc53bc416d25e0e2e0552a2189f2095a2c8","commit_message":"Premature styling adjustments + minor renaming","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-05-01T05:56:09Z","commit_sha":"ab2f947019ccf00bf604ed713ef0eb2663a80159","commit_message":"Bodyprog: collision struct fixups","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T21:05:55Z","commit_sha":"7912c8d9dc7c35ecdcbedf4d468184166e6034dc","commit_message":"Misc: Fix `ninja_config.py` + minor fixes\n\n* Fixed the option in objdiff which allows to rebuild objects which gone broken due `tools/get_o_files.py` behaviour\n* Manage to solve garbage data in `.bss` segment of some files which required to be patched in order to build the target files for Objdiff configuration","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351100,"matched_data":29484,"matched_data_percent":8.397608,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T17:21:00Z","commit_sha":"aee3b31b93c3b84f9ed07c5f67d0111006c7f02c","commit_message":"Bodyprog: name collision struct fields","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T15:55:18Z","commit_sha":"9961b294532e092fcdd3c8454260f094bcfb717a","commit_message":"Bodyprog: name collision functions","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T14:31:17Z","commit_sha":"b45778e6958b0d07e1944ba4e90c1c13744c56ea","commit_message":"Bodyprog: trim suffixes, name fields","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T12:02:53Z","commit_sha":"2df6039ac8f6fcd4785d849f96018a239faa26fd","commit_message":"Bodyprog: shorten struct names, use `e_CharaCollisionState`","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T11:30:03Z","commit_sha":"24b3fe76f2d9393d5aaf4712f85bcc0e18d8e420","commit_message":"Bodyprog: add `s_CharaCollision`, fix bad search-and-replace","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T10:57:02Z","commit_sha":"eea351f19c2c586e5647c104cc6ab7aac3e9aa2f","commit_message":"Bodyprog: collision progress","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T10:30:30Z","commit_sha":"0980d2b66b1c3efef7d7cc474f0850cc1c0338f1","commit_message":"Bodyprog: name character collision box/cylinder structs","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T09:49:42Z","commit_sha":"788a3d711184e6c1d2b5fba2b09b9e31279d8561","commit_message":"Bodyprog: collision struct deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-30T03:44:06Z","commit_sha":"9ef17358dad525256522c97eb8692db37d3b35e2","commit_message":"Bodyprog: trim suffixes, notes","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-29T08:56:01Z","commit_sha":"6b76f887aa4ed377e6bc10ed69b7bc962e358c11","commit_message":"Bodyprog: ray trace fixups and deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-29T07:47:12Z","commit_sha":"741935395df09a6284cce2d8186c4d13f460a00f","commit_message":"Bodyprog: ray trace tidying pass","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-29T05:21:18Z","commit_sha":"46aec602c73b5f8414df5799dc9711acb71e82f9","commit_message":"Bodyprog: ray LOS collision deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-29T03:55:56Z","commit_sha":"45e9699035255fb267abc73b087f206a5c797784","commit_message":"Bodyprog: general deobfuscation, hint comments","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-28T10:07:59Z","commit_sha":"82528f7099c690ebec73136cb54fc29c2104d6d6","commit_message":"Bodyprog: misc. deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-28T07:43:47Z","commit_sha":"a6a1dde6fb64ff208125c6b963e2757e2548d777","commit_message":"Bodyprog: point light deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-28T05:29:55Z","commit_sha":"37bbbe0f236c83e7008fd828cf73fd154fe00710","commit_message":"Bodyprog: update `s_800AE204`","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-28T04:46:40Z","commit_sha":"5b8e917a286afab6068ac3f78a029a0981bd7d50","commit_message":"Maps: add `e_HarryHandMesh`","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-28T03:56:58Z","commit_sha":"2042ce69e594b090c9d36aa407c3bc11442b93a0","commit_message":"Bodyprog: clarify bone macros slightly. remove padding byte","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-27T14:26:47Z","commit_sha":"eecb4d7ca536c07011c0ee05e2b8fe305a7c7d74","commit_message":"Bodyprog: demagic BGM track requests, name funcs","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-27T13:34:09Z","commit_sha":"93fabc4ef2278ce7b2bb480d51833cc37ee6c5bd","commit_message":"Formatting pass","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-26T17:26:32Z","commit_sha":"30b1a3c6a887ebd5f1dd617164af5d7e29e5cdcd","commit_message":"Maps: name globals, demagicking","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-26T12:02:26Z","commit_sha":"22b5776b7fc9ccdbc98e7b12e1ac5dbfa6d64c39","commit_message":"Maps: update structs, name object globals","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-26T09:47:10Z","commit_sha":"17524ba20ec802ef48b4b31b3b32f36d24ba6cd9","commit_message":"Maps: tidying pass","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-26T07:47:45Z","commit_sha":"22a8768ab3f1cce0d57fb9f1dbe8a187bb9d943f","commit_message":"Maps: move character func decls, `coords` -> `boneCoords`","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-26T07:10:37Z","commit_sha":"8ced6bff763bdc255a5a3e012d66a1a51e1c70c6","commit_message":"Maps: Kaufmann character demagicking","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-25T13:29:08Z","commit_sha":"4572ba38ad3bae5c923ff3be22873679cd339d23","commit_message":"Maps: misc. deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-25T11:05:48Z","commit_sha":"f5d5fa56213f7b1ece14098b5ff263c988500bd6","commit_message":"Maps: Twinfeeler character deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-25T09:51:09Z","commit_sha":"4b1be5f75fe3974120f67242727ca799eb5cd292","commit_message":"Maps: Twinfeeler character deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-25T08:00:26Z","commit_sha":"a1eb03e0e2a04f1c2c833f98ec702ec9b6385692","commit_message":"Maps: add index labels to map messages","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-23T15:18:48Z","commit_sha":"b19a9eac4051c9581ee7c8f332848a5ca3e222df","commit_message":"Maps: cutscene deobfuscation, doc comments","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-23T13:46:54Z","commit_sha":"5a92dac5fa58f3d2f0214fc8320bd5dc8d613ec0","commit_message":"Maps: M0S00 cutscene deobfuscation","measures":{"fuzzy_match_percent":99.87657,"total_code":2877980,"matched_code":2874428,"matched_code_percent":99.87658,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-23T12:12:48Z","commit_sha":"9e6b3ad2fa0b933d132a9a42797a0317733e3512","commit_message":"`Fs_QueueDoThingWhenEmpty` -> `Fs_QueueChunksLoad`, docs, misc. maps deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-23T07:28:16Z","commit_sha":"c85ca291b516b91888a9178b3e6e0ccdfa5c18b2","commit_message":"Maps: add comments","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-23T05:48:31Z","commit_sha":"dec93c76c3b6ca2d674b0cca13d5787a59a916be","commit_message":"Maps: name globals","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T15:47:18Z","commit_sha":"cc3f635c6d0d6d5a5a93e358a909cda1a80c4861","commit_message":"Maps: name globals","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T14:55:46Z","commit_sha":"7477c7b322d6a308672444202fe75f14f6a91d08","commit_message":"Maps: name cutscene globals","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T11:10:02Z","commit_sha":"7953368b198b292fbab039664fd0779708a59fd6","commit_message":"Bodyprog: name DMS funcs, docs","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T10:04:22Z","commit_sha":"6be48c7a1f015a4445c584a170a4225f4b64f6eb","commit_message":"Bodyprog: add `bodyprog/dms.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T09:46:06Z","commit_sha":"e537978f5249d2009f6df8b82b6c769815ecd7b7","commit_message":"Docs, trim suffixes","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T08:20:41Z","commit_sha":"10d25493ca10a911dd65df2d8b5a10f8c92e5561","commit_message":"Bodyprog: trim struct field suffixes","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T06:50:38Z","commit_sha":"6ea88f6e13807da6edb31e1a5791a7369b96f0b9","commit_message":"Docs, tidying pass","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-22T05:06:18Z","commit_sha":"9458f79ae6f027fb87c73f628e024e3ef81e19c7","commit_message":"Use `Math_SetSVectorFastSum`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-21T13:47:01Z","commit_sha":"2b1f1bfbcbbafbb8ffc5c60199b7a259b1efe39c","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-21T08:17:30Z","commit_sha":"afd7e4ef20cd771a3602d24f77205d4de6dd3922","commit_message":"Deobfuscation, demagicking","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-20T13:17:20Z","commit_sha":"42037aa72e56f00f42fb6589c5771d66fc9984ca","commit_message":"Fix build","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-20T12:58:00Z","commit_sha":"c6fd0142d7d24aebbc64131f3f59bb723f392967","commit_message":"Bodyprog: collision deobfuscation","measures":{"fuzzy_match_percent":99.876175,"total_code":2877980,"matched_code":2873944,"matched_code_percent":99.859764,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-20T10:40:52Z","commit_sha":"f697818a9ea6d658535fd07ec839e2fe3946f54b","commit_message":"Boddyprog: `func_80088F94` -> `Chara_ModelCharaIdClear`, `func_80088D34` -> `Chara_BonesInit`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-20T09:23:33Z","commit_sha":"afbb723eae7971cd957743c3e09d1cc41200928a","commit_message":"Bodyprog: `func_80088FF4` -> `Chara_SpawnFlagsSet`, `func_80089034` -> `Chara_SpawnPositionSet`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-20T09:08:53Z","commit_sha":"02d5d6c93f8eedb174153c9ed9270bb13150626b","commit_message":"Demagic character spawn flags","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-20T03:49:19Z","commit_sha":"7e3ce1726601c8572c2c31745aceb431c5d876a1","commit_message":"Bodyprog: IPD deobfuscation","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-19T12:38:35Z","commit_sha":"04ed0b7b9b8c73b87f603dd9e7618477f02d816e","commit_message":"Bodyprog: tidying pass","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-19T05:34:02Z","commit_sha":"34626715128750d83ac81a0631b8431259f6e8e4","commit_message":"Bodyprog: minor code fixup and file split","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":304,"complete_units":0}},{"timestamp":"2026-04-18T14:56:39Z","commit_sha":"d07bfdb017f23571d1a8839f1dcaca3289dcdc4c","commit_message":"Fix symbols","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-18T14:25:28Z","commit_sha":"499b96b1afd76c36e81122bd79e396571f0be108","commit_message":"Maps: Air Screamer character anim deobfuscation","measures":{"fuzzy_match_percent":99.830696,"total_code":2877980,"matched_code":2873108,"matched_code_percent":99.83072,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-18T13:12:45Z","commit_sha":"8152241599bfed7e590c1e81b7e7fc718511d80d","commit_message":"Maps: Romper character deobfuscation","measures":{"fuzzy_match_percent":99.830696,"total_code":2877980,"matched_code":2873108,"matched_code_percent":99.83072,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-18T05:59:12Z","commit_sha":"60fb628f35591ef4735ffdd9a80079468006fae2","commit_message":"bodyprog: Minor splits reorganization","measures":{"fuzzy_match_percent":99.830696,"total_code":2877980,"matched_code":2873108,"matched_code_percent":99.83072,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-18T04:58:55Z","commit_sha":"ec2c8b9d5d34c67635022a28ea618b440a2ef540","commit_message":"Maps: Cheryl character deobfuscation","measures":{"fuzzy_match_percent":99.830696,"total_code":2877980,"matched_code":2873108,"matched_code_percent":99.83072,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-18T03:56:26Z","commit_sha":"ebca048deb9355a67893326e36b6833ef0bfb2a7","commit_message":"Maps: Cheryl character deobfuscation","measures":{"fuzzy_match_percent":99.830696,"total_code":2877980,"matched_code":2873108,"matched_code_percent":99.83072,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-17T07:50:31Z","commit_sha":"aee410074f4890b359598ad91f0f16279485565b","commit_message":"`bodyprog_800706E4.c` -> `player_control.c`, distinguish padding globals more clearly","measures":{"fuzzy_match_percent":99.830696,"total_code":2877980,"matched_code":2873108,"matched_code_percent":99.83072,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-17T07:37:01Z","commit_sha":"6a0709562f649881a0df9667172c379a0fab321c","commit_message":"Bodyprog: `func_800706E4` -> `Player_VariableAnimDurationGet`, tidying pass","measures":{"fuzzy_match_percent":99.830696,"total_code":2877980,"matched_code":2873108,"matched_code_percent":99.83072,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-16T08:53:04Z","commit_sha":"16c03bf1630e004aab0f7b6626473fbad0a8659f","commit_message":"Maps: deobfuscate Larval Stalker character anims and control states","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-15T12:30:34Z","commit_sha":"38d42be72e9aa44daa9e9486d447d4fb8ff37e4c","commit_message":"Maps: Creeper character deobfuscation, trim suffixes","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-15T11:33:43Z","commit_sha":"252e1275d0c15118b4935f4d9583e8d717b7bae2","commit_message":"Maps: deobfuscate Creeper character anims and control staes","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-15T08:07:24Z","commit_sha":"d6bbe4e5e3e2143368a62b0d31ea19c3ddeafb97","commit_message":"Bodyprog: name field, update enums, comments","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-15T05:31:36Z","commit_sha":"3f869812df8a54039ce541e3e06608ad8bbbffde","commit_message":"File movements and minor documentation work","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-14T14:26:55Z","commit_sha":"1baf0e70c2b718c6110a83d4db57aca181f5f69b","commit_message":"Bodyprog: trim suffixes, audio flag deobfuscation","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-14T09:19:12Z","commit_sha":"d643885aad7c6a146a35fad6d28399b4b6f3c839","commit_message":"Bodyprog: misc. deobfuscation","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-14T05:20:58Z","commit_sha":"6f55fc73593e8850ab208881fbe434d68a4b607a","commit_message":"Bodyprog: trim struct suffixes, naming","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-14T04:07:23Z","commit_sha":"c621f8c46e3fc33e32afd2512e1e0c9a2210c221","commit_message":"Bodyprog: trim struct field suffixes","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T15:27:41Z","commit_sha":"ebae23df9d4d29b0b9364db895a838418aeefc80","commit_message":"Bodyprog: trim suffixes","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T14:16:27Z","commit_sha":"39fea3fa7b888f829fef8e44c2ca9eb9c66bc593","commit_message":"Bodyprog: add `e_BgmTrackIdx`, deobfuscate `e_BgmFlags`","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T10:41:39Z","commit_sha":"de3452eaf66baff0cec1d6cadd50406c61e5b3a4","commit_message":"Bodyprog: naming, demagicking","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T06:40:40Z","commit_sha":"0572e4f57fce9cdea874d2bd67adc1cd3c3bf5fd","commit_message":"Bodyprog: demagicking","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T06:19:54Z","commit_sha":"02704f565887436707dcdf1dbc66fd0f524d65c9","commit_message":"Bodyprog: trim suffixes in `s_SubCharacter`","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T05:28:00Z","commit_sha":"536a93690d8d89c703cf893f70cba1b7b4957db6","commit_message":"Bodyprog: trim suffixes in `s_SubCharacter`","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T05:12:45Z","commit_sha":"a29e846509c4174a8b08560d9d766515268bc045","commit_message":"Bodyprog: add `e_Unk2284Flags`, demagicking","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-13T04:18:22Z","commit_sha":"e074cd749f238fea0d922184aecf34d86ac64edd","commit_message":"Bodyprog: name struct fields","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T14:55:53Z","commit_sha":"d40edee90699e5df2bb6c71905b7a586f4dd6fa4","commit_message":"Bodyprog: `func_8006CB90` -> `Collision_OffsetAlphaGet`, deobfuscation","measures":{"fuzzy_match_percent":99.87184,"total_code":2877980,"matched_code":2874292,"matched_code_percent":99.87186,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T12:29:39Z","commit_sha":"e5aa1e429c79db0fd04d1c6c02adc2b0c5b2ac98","commit_message":"Bodyprog: add `npc_main.h`, trim suffixes","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T11:11:36Z","commit_sha":"a1887b698697376e915d6fb8c78d1b9927586b5b","commit_message":"Bodyprog: add headers","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T10:56:06Z","commit_sha":"1cfddf72c87d3e77ed6ba804d80a72ee3ed32ccf","commit_message":"Bodyprog: add `raido.h`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T08:46:43Z","commit_sha":"822137d5b230492eb6dc3c941b65e480a5fc37ac","commit_message":"Bodyprog: add corresponding header for `bodyprog_data_800A99B4.c`","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T08:08:16Z","commit_sha":"32df3a1c4fdc672e6a2c0bb6ba93b22bfc161f77","commit_message":"Bodyprog: `sound_background.h` -> `bgm_update.h`, move decls","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T04:26:36Z","commit_sha":"d27a5afa82aa20142c0aad490efd76db481756ea","commit_message":"Bodyprog: anim system deobfuscation, trim suffixes, add comments","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-11T01:06:28Z","commit_sha":"8ca5e338710f6526625cd376a914e2217ca0a525","commit_message":"Fix build","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-10T16:01:13Z","commit_sha":"4b2cff854528d04a466f171ac5422ade71d1d948","commit_message":"Bodyprog: name local vars","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-10T12:04:50Z","commit_sha":"93190ab6be6f7b3bba01a3d68d3e88e48733b879","commit_message":"Bodyprog: name 3 funcs, docs, types","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-10T05:38:47Z","commit_sha":"e411c41dedd2f4fb3d0dfbdb3215aebceb5dbb56","commit_message":"Camera: finish trimming suffixes","measures":{"fuzzy_match_percent":99.878105,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-09T15:28:22Z","commit_sha":"bd44c6f25d586057f1bd222351f99717ce4bf49c","commit_message":"Camera: docs","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-09T08:16:45Z","commit_sha":"9b966367eabbf85b2c618afa38a0a851d67cc276","commit_message":"Camera: docs, `func_8004A54C` -> `Vw_ScreenRegionSpanCheck`","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-04-01T10:38:54Z","commit_sha":"072a5e180a681075a385761284c23c3fc284a6f5","commit_message":"Add `e_XaLoadState` and `e_XaStopState`, fixups","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-03-30T17:27:56Z","commit_sha":"d47b9dfc87e2b63a06147fc78fe939731b4ba8d8","commit_message":"func_8005BF38 -> Math_AngleNormalizeSigned","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-03-30T17:22:52Z","commit_sha":"73c96132dff678979f5e573e145c9443f355a43a","commit_message":"configs: disable `generate_asm_macros_files`, add splat .inc files to git\n\nNewer splat depends on these .inc files to work","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-03-30T11:47:17Z","commit_sha":"6c144f9db989fcfd0fa893444d7c84d6466aa175","commit_message":"Sound: name local vars, revise doc comment","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-03-30T11:19:31Z","commit_sha":"37f0d183ffbd08d211c6d671ce52ad9168850194","commit_message":"Add `e_AudioLoadState`, tidying pass","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-03-29T17:56:34Z","commit_sha":"56dfe56c45a8fb771d7b65ee01d41fc5747c6040","commit_message":"requirements: update splat to 0.39.1 (run pip before building)\n\nMake sure to `pip install -r requirements.txt`!\n\nTODO: splat creates some new files when run:\n  include/gte_macros.inc / include/include_asm.h / include/labels.inc / include/macro.inc\n\nWe have some versions of those in include/decomp/ folder, not sure if those get used now though?","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":351108,"matched_data":29476,"matched_data_percent":8.395138,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":303,"complete_units":0}},{"timestamp":"2026-03-29T15:26:33Z","commit_sha":"1118d8de1d174e97d4c7f9044d6c6872a70a0e2a","commit_message":"text_draw_jp: match 2 funcs\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-27T10:02:58Z","commit_sha":"aa469d756c9870fc61a9db035ef0067037cfe443","commit_message":"Formatting","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-27T09:23:26Z","commit_sha":"29d6b7249d1442f2ce55b6782b079615c4918998","commit_message":"Refine docs","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-26T22:00:38Z","commit_sha":"127506db8cebdc50d4aeea1a3aa3e6e6f99e0674","commit_message":"bodyprog: add enemy character e_EquippedWeaponId values","measures":{"fuzzy_match_percent":99.8781,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-26T21:21:38Z","commit_sha":"eca1cf61bef3d76af98a016e8c8919b0b63ec9ed","commit_message":"bodyprog: add e_InventoryItemGroup and conversion macros","measures":{"fuzzy_match_percent":99.8781,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-26T18:32:07Z","commit_sha":"e1829782f027880db396f646edca014106fc358e","commit_message":"text_draw_jp: match 3 funcs","measures":{"fuzzy_match_percent":99.8781,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-26T18:23:26Z","commit_sha":"311de0af6b3d7854a80c754923430e26a1e6a0f4","commit_message":"JPN0/JPN1: match func_8004B76C\n\nTODO: fix JPN0 map0_s00 splits\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.8781,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-26T03:25:52Z","commit_sha":"80d175816bce31f42240ebaee5bceb8f004c8e6a","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.87809,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-22T22:17:06Z","commit_sha":"89602aad857ecaf6187daa4b5447872a60993b5c","commit_message":"maps: add character splits\n\nmap2_s02/map5_s01/map6_s00 still `#include`s romper.c, some reason splitting that causes alignment issue between MAP_MESSAGES and jtbl following it.\nMaybe moving MAP_MESSAGES to new split would fix that, haven't tried yet though.\n\nmap3_s03 also has some alignment issues when puppet_nurse is split, seems to happen before the MAP_MESSAGES stuff though\nnot sure how that could be fixed yet\n\nTODO: look into map3_s05 and map1_s05/map1_s06 split_head","measures":{"fuzzy_match_percent":99.8781,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":300,"complete_units":0}},{"timestamp":"2026-03-22T17:36:49Z","commit_sha":"308ebb290ffbbf5f15b33578b162318a69f7e1e7","commit_message":"maps: move player.c to separate split\n\nTODO: map0_s01 (rodata offset issues), map1_s02, map3_s05, includes cleanup\n\nmap5_s02 & map7_s01 have an odd issue where some .rodata inside player.c and stalker.c/puppet_nurse.c is deduplicated between them\nIf they're built as seperate splits then the deduplication doesn't occur and rodata gets inflated by 0x10 bytes.\nCould mean the two files were actually part of the same TU, maybe they had a single characters.c file which would include the other .c files conditionally?\n\nFor now in other maps we'll try and keep using proper splits for each character\n(less code in each split will make version diffs easier to handle)\nbut will probably look into changing to a characters.c file in them later on.","measures":{"fuzzy_match_percent":99.8781,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":272,"complete_units":0}},{"timestamp":"2026-03-22T14:18:18Z","commit_sha":"c54d683c4ea11d3e8d990cc71df3c5db8b8a54cf","commit_message":"maps: fix map6_s04 splits","measures":{"fuzzy_match_percent":99.8781,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":244,"complete_units":0}},{"timestamp":"2026-03-22T03:03:37Z","commit_sha":"69813539ac76503e457103c4f91c4f3ef0496bf5","commit_message":"maps: setup rest of particle splits\n\ntodo: map4_s03 might need extra splits to fix hack","measures":{"fuzzy_match_percent":99.71507,"total_code":2877980,"matched_code":2869780,"matched_code_percent":99.71508,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6529,"matched_functions":6522,"matched_functions_percent":99.892784,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":244,"complete_units":0}},{"timestamp":"2026-03-22T00:56:13Z","commit_sha":"003dbda4b5582474dfa23210c3d8d3dbf766e1c8","commit_message":"maps: setup particle splits in each map\n\nTODO: map2_s00 map2_s02 map4_s02 map4_s03 map5_s00 map5_s01 map6_s00 all\nhad rodata issues, still using #include for now\n\nmap0_s01 splat yaml offsets seem wrong for rodata too, still matches\nsince all the rodata is pulling from .o though, but should still be fixed\nwith proper offsets","measures":{"fuzzy_match_percent":99.71507,"total_code":2877980,"matched_code":2869780,"matched_code_percent":99.71508,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6529,"matched_functions":6522,"matched_functions_percent":99.892784,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":235,"complete_units":0}},{"timestamp":"2026-03-21T14:25:46Z","commit_sha":"525b45e2cc67e0a832da161613f6d2cc839408d9","commit_message":"maps: rename acid/glass/water unk_draw files","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-21T13:07:33Z","commit_sha":"215b8de02cc77ad456069129e6df213ef923b8a9","commit_message":"maps: merge 5 sharedFuncs to unk_draw_m1s02.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-21T12:59:28Z","commit_sha":"09511dfecd155d7939c7bc3082db4319ab03a47b","commit_message":"maps: merge 4 sharedFuncs to unk_draw_m1s01.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-21T12:55:26Z","commit_sha":"1777a228fd5ab394482ddc1decaf01873872978a","commit_message":"maps: merge 2 sharedFuncs to unk_draw_m1s03.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-21T12:41:05Z","commit_sha":"7897129262b21a3d6a61c13270003f2937931a69","commit_message":"maps: merge 6 sharedFuncs to unk_draw_m1s05.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-21T12:32:13Z","commit_sha":"907b9f661928be9ca223db131c6b8e2ef16f14d0","commit_message":"maps: merge 6 more sharedFuncs to unk_draw.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-21T12:21:33Z","commit_sha":"bb2ed44a64277d07c2024b36c28a4f5cde086a15","commit_message":"maps: merge 4 sharedFuncs to unk_draw.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-20T07:48:21Z","commit_sha":"07cd7951d96e0ac5b80b11992aed401f065287f2","commit_message":"tools/objdiff_generate: fix objdiff rebuilding","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-19T04:48:13Z","commit_sha":"4cc3f67cd09215ebb2bc75a91f9cac6fc6e06587","commit_message":"Bodyprog: name 8 character funcs","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T14:55:51Z","commit_sha":"a4712657a2047158aff1acf034366cd86afba987","commit_message":"maps: header fixups","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T12:34:12Z","commit_sha":"5bc8c916078dbb20feb076f362c74364efaa38a2","commit_message":"maps: merge PuppetNurse funcs to puppet_nurse.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T10:34:57Z","commit_sha":"4d9fa3378a01c8395ea1dbf1daccfedabb7ff6b9","commit_message":"maps: merge chara utility funcs to chara_util.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T10:09:30Z","commit_sha":"b27af5750327cb76bc8d95f8060c10eb012206ae","commit_message":"maps: minor fixups","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T08:16:10Z","commit_sha":"d8ee50a6d8cf6d15ed38f41ddfc7b3afd60de261","commit_message":"JPN0: match map0_s00\n\nTODO: bin2c event data, some of them have differences.","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T08:14:43Z","commit_sha":"c3e12e8449ec5b0c601fb783d82852b3276d442b","commit_message":"JPN0: match map0_s00\n\nTODO: bin2c event data, some of them have differences.","measures":{"fuzzy_match_percent":97.35144,"total_code":2877980,"matched_code":2801756,"matched_code_percent":97.35147,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6395,"matched_functions_percent":97.97763,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T01:44:14Z","commit_sha":"c5d5471e560e01d57cfa495ea007237e575b58ec","commit_message":"JPN: match Gfx_Results_Save","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-18T00:20:48Z","commit_sha":"2e2902e38fa8df1b7f9be4459169631ffb7a44b1","commit_message":"configs_formatter: skip empty segments","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-17T00:38:43Z","commit_sha":"3783a44c8a718d9d0f278b4c278fd240c6bf96ef","commit_message":"JPN0: use psyq obj files","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-16T21:15:30Z","commit_sha":"3c6e0c6c26bc367246c058be579d4436643bdc4b","commit_message":"JPN1/JPN2: add PsyQ syms + splits","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-16T19:14:38Z","commit_sha":"35630f9b576b615f0baba1d46edb8c3a3ccf72fe","commit_message":"JPN0: add PsyQ splits","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-16T18:41:20Z","commit_sha":"7d2bba460798b5d36cf963bb3e4bd491e3166b56","commit_message":"JPN0: add PsyQ syms","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-16T15:14:24Z","commit_sha":"dd8cd50b6989ef427c520cb74d76c15c0e3871e8","commit_message":"JPN1/JPN2: move libsd/lib_unk splits to C","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-16T14:06:33Z","commit_sha":"73e5c0d4c9787fbdffe8adbbd04862e4d20b86b7","commit_message":"bodyprog: Lm_MaterialFileIdxApply fixup","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-16T03:02:39Z","commit_sha":"f5469a5b918ab18b3c109f9d7bdbde353f1e2299","commit_message":"Bodyprog: name 3 GFX funcs","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T15:38:20Z","commit_sha":"2f573a4f9c340ced95f77a86060e2299a1bfbe46","commit_message":"JPN1/JPN2: move rest of bodyprog splits to C\n\nbodyprog_800706E4 bodyprog_combat_8008A058 & demo all have changes made from JPN0->USA\n(added with `VERSION_EQUAL_OR_NEWER(USA)`)","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T15:16:04Z","commit_sha":"8458acc06965266d3d6e4c7c181612624ab840f4","commit_message":"JPN1/JPN2: match memcard_2.c","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T14:53:46Z","commit_sha":"0abf3b9624e97cabb75061dab092301bb7089568","commit_message":"JPN1/JPN2: move 5 splits to C\n\nrest of matching splits, still 4 that don't match JPN0 to be moved:\n  bodyprog_800706E4.s\n  bodyprog_combat_8008A058.s\n  demo.s\n  sys/memcard_2.s","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T14:49:38Z","commit_sha":"6fe3d85f1faf0586faeb969c7a0b43e4f6f461ca","commit_message":"Bodyprog: name and document 6 camera funcs\n\nCo-Authored-By: KushAstronaut <37986780+KushAstronaut@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T14:22:49Z","commit_sha":"90084c62e356a2b158ce4dc218cbbe5a57b5c024","commit_message":"JPN1/JPN2: move title split to C","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T11:27:16Z","commit_sha":"df2486c77d4114154b74a9e9a0e172a40950b093","commit_message":"Bodyprog: name 1 collision function, refine param names\n\nCo-Authored-By: KushAstronaut <37986780+KushAstronaut@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T10:38:01Z","commit_sha":"ba998c8262e3958550f5d538ee1f271e57d635a6","commit_message":"bodyprog: fix events_main split addr","measures":{"fuzzy_match_percent":99.878075,"total_code":2877980,"matched_code":2874472,"matched_code_percent":99.878105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6524,"matched_functions_percent":99.95404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T09:41:06Z","commit_sha":"7ad9ca916758a0ad0f01943fc123782cd9419f40","commit_message":"tools: add compare_elf_to_splat.py\n\nCompares syms between sym.txt and a built ELF\nUsage:\n  tools/compare_elf_to_splat.py build/USA/out/1ST/BODYPROG.BIN.elf configs/USA/sym.bodyprog.txt\n\nOnly really tested with bodyprog.bin.elf so far","measures":{"fuzzy_match_percent":99.87572,"total_code":2877980,"matched_code":2874404,"matched_code_percent":99.87575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T08:50:59Z","commit_sha":"304ec826503dd3d4f735d87b6beb5b2903078766","commit_message":"bodyprog: rename miscellaneous `unk`s that get used in the code","measures":{"fuzzy_match_percent":99.87572,"total_code":2877980,"matched_code":2874404,"matched_code_percent":99.87575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T04:29:36Z","commit_sha":"b94c95db776fcdd7037ce129af056b896f7eaefe","commit_message":"Bodyprog: name 3 collision funcs + 2 structs\n\nCo-Authored-By: KushAstronaut <37986780+KushAstronaut@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.87572,"total_code":2877980,"matched_code":2874404,"matched_code_percent":99.87575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T03:41:07Z","commit_sha":"ab0b5299848c2a2c0cd0a2f06c82d20aa5d0f8ab","commit_message":"Bodyprog: name 1 collision func + 1 global, add `e_CollisionFlags`","measures":{"fuzzy_match_percent":99.87572,"total_code":2877980,"matched_code":2874404,"matched_code_percent":99.87575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-15T03:08:35Z","commit_sha":"25cead6350ff15144f8084f01a10e3bbef66904e","commit_message":"map5_s00: share Map_RoomIdxGet, remove gotos\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.87572,"total_code":2877980,"matched_code":2874404,"matched_code_percent":99.87575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6523,"matched_functions_percent":99.93871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T23:41:13Z","commit_sha":"1b6b45750c4e6f7447021a21992b521fc7b43b13","commit_message":"feat: decompile Map_RoomIdxGet for map5_s00 (Sewers) (#485)\n\nReplace the last INCLUDE_ASM in map5_s00 with matching C.\nThe function determines sewer room index from player X/Z\ncoordinates using range checks and a 5x5 fallback grid.\n\nCo-authored-by: Your Name <you@example.com>","measures":{"fuzzy_match_percent":99.853195,"total_code":2877980,"matched_code":2873756,"matched_code_percent":99.853226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T15:24:47Z","commit_sha":"25887978bcc4c121e67108a3230adafb7e4d5250","commit_message":"Bodyprog: name and document 4 collision funcs\n\nCo-Authored-By: KushAstronaut <37986780+KushAstronaut@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.853195,"total_code":2877980,"matched_code":2873756,"matched_code_percent":99.853226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T14:44:02Z","commit_sha":"649af712fc07d07f7735acc030f6e8715b3fc332","commit_message":"Demagicking","measures":{"fuzzy_match_percent":99.853195,"total_code":2877980,"matched_code":2873756,"matched_code_percent":99.853226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T11:29:24Z","commit_sha":"cc33e64cb31db88f59127b0fce5788057e8b0228","commit_message":"JPN: match GameState_ItemScreens_Update","measures":{"fuzzy_match_percent":99.853195,"total_code":2877980,"matched_code":2873756,"matched_code_percent":99.853226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T11:02:43Z","commit_sha":"0edfeb481795e7f3b75606a2f64e8bcc02dbbdfd","commit_message":"bodyprog: update s_GteScratchData to match s_GteScratchData2\n\nWonder if these two could be merged now?","measures":{"fuzzy_match_percent":99.853195,"total_code":2877980,"matched_code":2873756,"matched_code_percent":99.853226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T09:53:30Z","commit_sha":"b5be5b3a644d024801a146ed588e6823210db2e0","commit_message":"bodyprog: func_8005B62C\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: dreamingmoths <dreamingmoths@users.noreply.github.com>\nCo-authored-by: khulegu <khulegu@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.853195,"total_code":2877980,"matched_code":2873756,"matched_code_percent":99.853226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6522,"matched_functions_percent":99.92339,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T09:34:53Z","commit_sha":"77c137e89f6d21d6e1cc3cb0c0c00ed0075dfaef","commit_message":"Bodyprog: name collision functions\n\nCo-Authored-By: KushAstronaut <37986780+kushastronaut@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.77425,"total_code":2877980,"matched_code":2871484,"matched_code_percent":99.774284,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6521,"matched_functions_percent":99.90807,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-14T05:49:17Z","commit_sha":"5a174e9dbfbe57a916aa1eddbb3d3c426dcdf31b","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.77425,"total_code":2877980,"matched_code":2871484,"matched_code_percent":99.774284,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6521,"matched_functions_percent":99.90807,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-13T01:41:53Z","commit_sha":"d6c6f46bee1cf1abffb0e13e350bd0873e9b30ff","commit_message":"JPN1/JPN2: match func_80067914","measures":{"fuzzy_match_percent":99.77425,"total_code":2877980,"matched_code":2871484,"matched_code_percent":99.774284,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6521,"matched_functions_percent":99.90807,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-13T01:28:23Z","commit_sha":"2b893ca92e08aa1ad98fb461fb48c5f92812fa27","commit_message":"JPN1/JPN2: move 5 splits to C (1 nonmatching)\n\nbodyprog_mapscreen_80066D90 has func_80067914 nonmatching compared to\nJPN0\n\nhttps://decomp.me/scratch/yqpac","measures":{"fuzzy_match_percent":99.77425,"total_code":2877980,"matched_code":2871484,"matched_code_percent":99.774284,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6521,"matched_functions_percent":99.90807,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-13T01:26:31Z","commit_sha":"22cea1747f4ec9998913423fd5a21ad2775af711","commit_message":"JPN1/JPN2: move 5 splits to C (1 nonmatching)\n\nbodyprog_mapscreen_80066D90 has func_80067914 nonmatching compared to\nJPN0\nhttps://decomp.me/scratch/yqpac","measures":{"fuzzy_match_percent":99.77425,"total_code":2877980,"matched_code":2871484,"matched_code_percent":99.774284,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6521,"matched_functions_percent":99.90807,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-11T20:40:55Z","commit_sha":"ace91d3dd99a4592edb998db16d6bf7612c53af0","commit_message":"map6_s00/map6_s02: match Map_RoomIdxGet\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>\nCo-authored-by: petetnt <petetnt@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: sestain <sestain@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.77425,"total_code":2877980,"matched_code":2871484,"matched_code_percent":99.774284,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6521,"matched_functions_percent":99.90807,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-11T11:49:19Z","commit_sha":"e13bcb7fcaacca143b76078c8afdc90ee3209135","commit_message":"bodyprog: name `ItemScreen_TmdGsFCallInit`, format JPN0/JPN1 syms","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-11T10:35:46Z","commit_sha":"dd4ae5b6762ddd2e7ec1e5288c8c3ef7c911d6ef","commit_message":"JPN0: fix S__SAFE2 comment mixup, comments around changed modchip code\n\noops","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-11T03:36:16Z","commit_sha":"e93160b43d9dbad5954a282ee78b838b8710064c","commit_message":"Misc. fixups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-11T01:29:33Z","commit_sha":"1b44af08f56239f9b4f0bc6471eca85c1e8415e7","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-10T19:40:06Z","commit_sha":"aa705fd700f4396dcf662413f5898e0a66fb4d99","commit_message":"JPN0: add configs for HP_SAFE1/S__SAFE2 anti-modchip overlays","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-10T17:24:46Z","commit_sha":"8c5a552c1f30e6a2b15cae6f4eb46b63ea9ebcfc","commit_message":"JPN1/JPN2: move b_konami/stream to C","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-10T16:48:55Z","commit_sha":"b5413db14fae088b8db0e94758feab1c2b11b19b","commit_message":"JPN0/stream: match 2 funcs","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-10T16:40:03Z","commit_sha":"864684685baa151d8aca1d88f7b2551c419d0ab0","commit_message":"JPN0: move stream to C (2 nonmatchings)","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-10T14:15:09Z","commit_sha":"6a454b38e1f791611606dcf8cb399b087ecefc44","commit_message":"JPN0: match BootScreen_KonamiScreenDraw","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-10T13:55:55Z","commit_sha":"61b9230342799b80fee34b3e41b28919a73b1541","commit_message":"JPN0: match `GameState_KcetLogo_Update`","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-10T13:38:44Z","commit_sha":"a4bba02348352692d92c8eaa696ea36b374c497a","commit_message":"JPN0: move b_konami to C (2 nonmatchings)","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T16:13:13Z","commit_sha":"db7bea3615552deadaf7aa85977af69d9c20fb8f","commit_message":"JPN0: start on text_draw_jp.c","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T15:02:27Z","commit_sha":"dbb8dfdaa21b9d7387ab31a82e7761f8720ac6f7","commit_message":"bodyprog: move some garbage rodata padding from C to splits\n\nJust padding that was at end of .c files, mostly moved them all over\nfine except some where pad wasn't 4-byte aligned\n\n(If we start a padding split at eg 0x13A splat doesn't seem to output\nbytes for them into the rodata .s properly, had to make split begin\nat 0x13C and patch them in with postbuild instead)\n\nbodyprog_800697EC / water / bgm_update still have garbage as they're\nfollowed by other rodata in the .c, might mean they need extra splits?","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T14:25:29Z","commit_sha":"7be0cad66e765a1492263cf929e80b91bc636ce3","commit_message":"Makefile: use -G8 for lib_unk","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T14:22:50Z","commit_sha":"fc5c0095327eed010d4ed29ee374a2b690f541ba","commit_message":"bodyprog: add lib_unk .sdata section","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T13:37:57Z","commit_sha":"528116a40fe4cb0751cb38c5ef4ce383fe88eb11","commit_message":"JPN0: move lib_unk to C","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T12:35:12Z","commit_sha":"d128b5e4e954fa53cad2090d82579fe19e84fa6c","commit_message":"JPN0: move bodyprog_mapscreen_80066D90 to C, minor USA bss fix","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T12:21:47Z","commit_sha":"619ac093a599302d250f2e43366e0dbf08e24081","commit_message":"JPN0: move rest of libsd to C","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T10:17:22Z","commit_sha":"acc5ee41fb9c569b88a3b246e6ceb5d4cb92fe91","commit_message":"Anim funcs: type conversions","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T09:44:49Z","commit_sha":"9f2c58a3ecc1095afb0a7585530f5df3a4fb749a","commit_message":"Rename and document animation playback funcs","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T06:57:36Z","commit_sha":"9c8afe67955b4952ab2e2927015e2f31ddecba31","commit_message":"Fixups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T06:38:16Z","commit_sha":"6e84f0f30b9f1af0064e7b6846640ac799511fc5","commit_message":"Fixups, name a global","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T02:50:24Z","commit_sha":"52376d77f5965dcb744de6bde0323abd1108c346","commit_message":"JPN1: move 4 splits to C, document ranking screen bugfix","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-08T01:50:16Z","commit_sha":"1957590d8f6909dd340ffc3f82eb598de67a3cb8","commit_message":"JPN1: move item_screens splits to C, document Aglaophotis bugfix","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T15:23:44Z","commit_sha":"e94f57bdd14ee501e28e838619427d6481d1e681","commit_message":"Demagicking","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T14:54:30Z","commit_sha":"64ffd11491db6b3342552c51cae4e5544be96d8a","commit_message":"Camera system docs, type updates","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T13:20:11Z","commit_sha":"de02b5662936f60148e16ac98603a10eee84ddc9","commit_message":"Tidying pass, docs","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T05:59:22Z","commit_sha":"43b8440328c2fa90609712847fc760f8377c81c9","commit_message":"JAP1/JAP2: move 15 splits to C","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T05:20:44Z","commit_sha":"9d901828388dd056c20bb53a3dbc1d5ae4fee081","commit_message":"JAP1/JAP2: move 16 splits to C","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T05:11:08Z","commit_sha":"aacf990c357d7fdb2e9ca78c039354e6df3c604e","commit_message":"JAP1/JAP2: move 10 splits to C","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T04:40:33Z","commit_sha":"de2076a82b7e08669ecd5c153f667ba98f671db8","commit_message":"JAP1/JAP2: match memcard.c","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T03:39:54Z","commit_sha":"0706ed88dc74010dc4e941b7a01c1880c104aec4","commit_message":"JAP1/JAP2: add bodyprog syms","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-07T01:42:50Z","commit_sha":"2554c3ee1aed60b852d44960e89fd417f43354fa","commit_message":"JAP1/JAP2: setup asm bodyprog splits","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-06T13:57:04Z","commit_sha":"933de57ffdd716c3d5b28c47a9593ceb240370fe","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-05T22:16:41Z","commit_sha":"dc0779ee71a6335eac553a3de2b62bec8f3b7aed","commit_message":"JAP1/JAP2: build matching `main` executable\n\nboth share same EXE, and likely bodyprog as well since the sym.bodyprog\naddrs match too\niirc there's some difference in one of the SILENT assets but not sure what\n(looks like most overlays were changed, but comparing them a lot of it\nseems to just be padding bytes?)","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-05T17:00:54Z","commit_sha":"ff0c84f207376b9f32259bb01521157a80774c60","commit_message":"JPN0: Gfx_Inventory_UnavailableMapText","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-05T03:30:42Z","commit_sha":"7b33da1ac3d42c078cba5a7e89971dd074826a09","commit_message":"Fixups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-05T00:08:45Z","commit_sha":"bd496d6332d8c03cbce3ed57484ab22fe692393c","commit_message":"JPN0: func_800539A0","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-04T23:49:46Z","commit_sha":"b0509ea35661bdfcd65a5a062f655b1f277d79bf","commit_message":"JPN0: func_80053898, fixups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-04T19:38:46Z","commit_sha":"21d03578e7fb8b79caaafdb89f60600b6571d714","commit_message":"Bodyprog: Split\n\nTried to more, but padding issues","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":180,"complete_units":0}},{"timestamp":"2026-03-04T18:01:51Z","commit_sha":"8767739846718930cc04dd7f660158dc53532dc2","commit_message":"JPN0: move item_screens_3 to C (2 nonmatchings)","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-04T10:25:44Z","commit_sha":"990d751bcc9de815713bfc8e39b34456c45ddf14","commit_message":"Fixups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-04T00:04:07Z","commit_sha":"a8b6cdd66cf8b97509ea2f8c7f1b56b49749dc0e","commit_message":"JPN0: move item_screens_2 to C (3 nonmatchings)","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T21:50:53Z","commit_sha":"53b88f81d84a1ed014b4ccdf3b9f7e58790f78dd","commit_message":"JPN0: match map_msg_display.c","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T12:12:37Z","commit_sha":"f4f29fff8e81177fdd4559b3feaa6cb729c2137a","commit_message":"JPN0: fixup","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T12:10:31Z","commit_sha":"be25b4016c639a8466338c47ca977550d41cc8cf","commit_message":"JPN0: match item_screens_cam.c, libsd, add some SDK splits","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T08:09:35Z","commit_sha":"1e6bd0412c74d5a09408f85605fb2ad41d0f8009","commit_message":"Fixups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T06:09:03Z","commit_sha":"dea4877aacc07c3e83b820ab7e7816b94356a860","commit_message":"BODYPROG: splits touch ups","measures":{"fuzzy_match_percent":99.73895,"total_code":2877980,"matched_code":2870468,"matched_code_percent":99.73898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T04:07:39Z","commit_sha":"0b8e77b90c990f0ba4d009867ca3700ddbe6df1b","commit_message":"Update include guards","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T03:46:55Z","commit_sha":"8807ea33c13c8c4a7ff4c03e756ce257b975933a","commit_message":"Organise sources","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T03:09:58Z","commit_sha":"3e168a84ed94774421d77a3fc692c3365907842c","commit_message":"`player_logic.h` -> `player.h`","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-03T03:04:24Z","commit_sha":"2773b9ccd3839892bcc24704664df81a5dcf121f","commit_message":"Organise headers","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T18:45:00Z","commit_sha":"396d3da54a5c9060be211fe9f3ff2a8ec33e6443","commit_message":"MAPS: Symbol name fix","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T12:23:33Z","commit_sha":"95dc88a6f0f3619f16b040329ed8c2a113347ebc","commit_message":"`const`ify params and a global","measures":{"fuzzy_match_percent":99.72548,"total_code":2877980,"matched_code":2870080,"matched_code_percent":99.7255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6477,"matched_functions_percent":99.23395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T11:19:07Z","commit_sha":"464e6d0efd0b1f966a06e52e8cbdd47aeb2f6e9c","commit_message":"Organise headers","measures":{"fuzzy_match_percent":99.72548,"total_code":2877980,"matched_code":2870080,"matched_code_percent":99.7255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6477,"matched_functions_percent":99.23395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T08:45:29Z","commit_sha":"69147f5438e4e52136710e4cf9b6a932db569998","commit_message":"JPN0: move item_screens_cam to .c (3 unmatched fns)","measures":{"fuzzy_match_percent":99.72548,"total_code":2877980,"matched_code":2870080,"matched_code_percent":99.7255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6477,"matched_functions_percent":99.23395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T07:44:12Z","commit_sha":"65ee4a4a9651b9c30074f314109ef6a0cc471dac","commit_message":"JPN0: match 3 .c\n\nsys/gamemain, gfx/bodyprog_80055028, bodyprog_combat_8008A058","measures":{"fuzzy_match_percent":99.72548,"total_code":2877980,"matched_code":2870080,"matched_code_percent":99.7255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6477,"matched_functions_percent":99.23395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T07:11:04Z","commit_sha":"e89c49b07737f5aaba2bec36fc22eb924f3f7d80","commit_message":"Misc. fixups","measures":{"fuzzy_match_percent":99.72548,"total_code":2877980,"matched_code":2870080,"matched_code_percent":99.7255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6477,"matched_functions_percent":99.23395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T06:25:32Z","commit_sha":"48c0edc3a8f198cff708599fdd58b14a9e4919fe","commit_message":"Bodyprog: split adjustments and reorder","measures":{"fuzzy_match_percent":99.72548,"total_code":2877980,"matched_code":2870080,"matched_code_percent":99.7255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6477,"matched_functions_percent":99.23395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-03-02T05:43:28Z","commit_sha":"80079b1dc145b495c648fab52b2217457438b83e","commit_message":"JPN0: match bodyprog_800706E4.c","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-02T04:14:46Z","commit_sha":"42a0a811b3fb142dad8535b44b64a76134b95df6","commit_message":"version: add version test macros\n\neasier than needing to remember which defines to check against each time","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-02T03:29:21Z","commit_sha":"248e8bbd6d9d4cdd2ae26d2742c3783e37c5f52d","commit_message":"JPN0: match memcard.c","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-02T03:21:33Z","commit_sha":"4a78a7c000fcb4b0bde4e4d9ce0cc4894e0f46f5","commit_message":"Camera deobfuscation","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-02T02:09:53Z","commit_sha":"22b7188efc039373f9845f46612e507875c31996","commit_message":"JPN0: finish moving matching bodyprog splits to C\n\nsplits that are still left as `asm` have some kind of difference in\nthem, luckily it's only ~11 splits out of 66\n\nbodyprog_mapscreen_80066D90.s is only other matching split that hasn't\nbeen moved to C yet, as it still has an unmatched func inside","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-02T00:46:14Z","commit_sha":"f285539d7b163f5ec21ab84c41f716d97fa55226","commit_message":"JPN0: move 4 splits to C","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T19:59:45Z","commit_sha":"7eee6c583e75bbf4da3a4fbfb8a2bda343ab70c3","commit_message":"JPN0: move 7 splits to C","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T19:31:18Z","commit_sha":"2c84e3a332b93bf40abcf841f162490d21b0d6e1","commit_message":"JPN0: move 3 splits to C","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T19:13:33Z","commit_sha":"976ad5ba0f02f74ab349b0c59407863a4d141435","commit_message":"JPN0: move 3 splits to C","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T18:45:40Z","commit_sha":"d6f93127c3fd3bb0812f67774785f94262196814","commit_message":"JPN0: move 3 splits to C","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T18:21:01Z","commit_sha":"47b0f41396b184ffb7f3d121d87b3d9e188ccdfa","commit_message":"JPN0: move 3 splits to C","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T17:56:03Z","commit_sha":"374950fc68ff3ca4db21933a1304b876e60b4084","commit_message":"JPN0: move 3 splits to C","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T02:12:16Z","commit_sha":"9e8e178915ecb16a5b5cecbc193daf7c31bf7afa","commit_message":"JPN0: move more splits to C\n\nmostly just ones without rodata/data/bss for now","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-03-01T01:40:08Z","commit_sha":"0dc746eface3f78c6cc55358112ded09c7720e8c","commit_message":"JPN0: build/match 3d_audio.c, add syms","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T20:02:44Z","commit_sha":"63869b032ca1d1ca0535dcfb30f25aaf34d469a2","commit_message":"JPN0: build/match demo.c","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T19:24:11Z","commit_sha":"b511ed20379b4efadf9cab4b158efc259d6e1ed4","commit_message":"JPN0: match bodyprog (...as asm)","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T19:10:04Z","commit_sha":"73036fc1f4fbe53579c53437b32470ba8cde25bb","commit_message":"JPN0: bodyprog build fixes\n\nDoesn't currently match","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T17:40:43Z","commit_sha":"5220ffef2e759fda5dad9a196453942e7b5bb61f","commit_message":"JPN0: add ~1500 bodyprog syms\n\nCopies over our USA names to JPN0, and also copies unnamed sym names\nfrom USA over too, so that JPN0 code can refer to same thing.\n\n(If you rename something in bodyprog plz search-replace globally so that\nthis can be updated too)","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T16:37:44Z","commit_sha":"2fae97e7c6c9c1c44b8a8aa3e9ed0e5429f19901","commit_message":"JPN0: update splits, Demo_DemoRandSeedAdvance difference","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T13:00:24Z","commit_sha":"9c88145f97db3a8d1cb78b69ad780192a14aa8e3","commit_message":"Options code naming fixups","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T09:55:03Z","commit_sha":"82590feb17a65a3db3b54ec9c0bfa87e3522fc89","commit_message":"Collapse syswork counters into an array","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-28T05:49:05Z","commit_sha":"227253afe01e8cde7e840b7390797ffdb90e6eba","commit_message":"Demagicking","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-27T16:11:45Z","commit_sha":"9329bfb44c5700d7299d0d1bf28224e60acaaf22","commit_message":"replace 0xFFF adjustment to division by 0x1000","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-27T01:47:47Z","commit_sha":"e9728a72824a6467e217233f17f8e3507fbfbdcf","commit_message":"Fixups","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-26T22:53:00Z","commit_sha":"a1b25e099a6e8ef865613460aead63c2a519b0dc","commit_message":"Match fix","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-26T22:30:14Z","commit_sha":"da6839c7c71288a1ac9aa52792596224362a8eeb","commit_message":"BODYPROG: Splitting, distribution and reorder (premature) (#483)\n\n* Dumb commit message *","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":182,"complete_units":0}},{"timestamp":"2026-02-26T11:01:49Z","commit_sha":"fdc6a071107f2827024c25648f933c4ba1c3faec","commit_message":"Misc. fixups","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-26T08:26:47Z","commit_sha":"39a39d76f9713138073da466620eb17dca70ecdb","commit_message":"map6_s04: func_800DE658\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.74131,"total_code":2877980,"matched_code":2870536,"matched_code_percent":99.74135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6520,"matched_functions_percent":99.89275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T23:58:10Z","commit_sha":"580cf41cb3e6eb9441b082b2cf9119fcbc0e847f","commit_message":"maps: add Gfx_LoadingScreen_StageString symbol","measures":{"fuzzy_match_percent":99.718254,"total_code":2877980,"matched_code":2869872,"matched_code_percent":99.71827,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T22:54:50Z","commit_sha":"fde40229b7d7f1a07f1bd842bf5208bea00e151a","commit_message":"tools/splat_ext: add o.py by @mkst to support 'o' segments in splat\n\nRemoved prebuild scripts as they're no longer required","measures":{"fuzzy_match_percent":99.718254,"total_code":2877980,"matched_code":2869872,"matched_code_percent":99.71827,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T21:29:47Z","commit_sha":"b71bee08744a91f1ca8c39ee1b405a1e6ec53bb0","commit_message":"game: merge mapMarkingFlags into eventFlags, delete MapMarkingFlag_ macros\n\nA lot of events have very high eventFlag indexes, which actually ended up overflowing\nthe `eventFlags_168` array and index into `mapMarkingFlags_1D4` instead.\n\nLikely means map marking flags are just normal event flags, so merged our existing\nMapMarkFlag_ values into e_EventFlag to let those events make use of them\n\nSeems odd for events to be depending on MapMark flags now though, maybe these flags\nare actually related to progression, and the map screen is just using them to know\nwhat to draw?","measures":{"fuzzy_match_percent":99.718254,"total_code":2877980,"matched_code":2869872,"matched_code_percent":99.71827,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T21:27:23Z","commit_sha":"468ab9b07b8952f835c36176e76d26e6fbfdca22","commit_message":"game: merge mapMarkingFlags into eventFlags, delete MapMarkingFlag_ macros\n\nA lot of events have very high eventFlag indexes, which actually ended up overflowing\nthe `eventFlags_168` array and index into `mapMarkingFlags_1D4` instead.\n\nLikely means map marking flags are just normal event flags, so merged our existing\nMapMarkFlag_ values into e_EventFlag to let those events make use of them\n\nSeems odd for events to be depending on MapMark flags now though, maybe these flags\nare actually related to progression, and the map screen is just using them to know\nwhat to draw?","measures":{"fuzzy_match_percent":99.718254,"total_code":2877980,"matched_code":2869872,"matched_code_percent":99.71827,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T20:33:53Z","commit_sha":"23ffeb7464eff0a57facd629b23ded4780e204ae","commit_message":"tools/LoadSHOverlays: add dialog to select symbols region (USA/EUR/JPN0...)\n\nTODO: ghidra 12 has disabled/removed jython which we used for the\nscripts, need to look into moving it over to pyghidra instead","measures":{"fuzzy_match_percent":99.718254,"total_code":2877980,"matched_code":2869872,"matched_code_percent":99.71827,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T20:30:48Z","commit_sha":"0ae5c8c024229cf7da12649c470ebdcb9fa087e9","commit_message":"tools/LoadSHOverlays: add dialog to select symbols region (USA/EUR/JPN0...)\n\nTODO: ghidra 12 has disabled/removed jython which we used for the\nscripts, need to look into moving it over to pyghidra instead","measures":{"fuzzy_match_percent":99.718254,"total_code":2877980,"matched_code":2869872,"matched_code_percent":99.71827,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T10:24:52Z","commit_sha":"d18d17aeccb6c1e19bad5e4f02b1fd97b3501d98","commit_message":"map6_s02: func_800D2364","measures":{"fuzzy_match_percent":99.71828,"total_code":2877980,"matched_code":2869872,"matched_code_percent":99.71827,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6519,"matched_functions_percent":99.87743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T08:21:37Z","commit_sha":"5743fc6c2922d379c63ec7d65225e6e04fd4934f","commit_message":"`D_800A8F40` -> `g_BlackBorderShade`, fixups","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T02:35:17Z","commit_sha":"e76817a7b5c7795d832b8f4a779cca8ca556b88f","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-25T00:24:27Z","commit_sha":"5ed95c3fa43f20604b9fa5912253fcfe39295185","commit_message":"maps: migrate map points\n\nTODO: rename empty Gfx_LoadingScreen_StageString funcs in each map","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T20:55:36Z","commit_sha":"fe7b9651bba26c5657085d74baa53f589a0eb963","commit_message":"maps: migrate player anim info tables","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T20:47:50Z","commit_sha":"acb971a64dbcc4a9b72338a4abbd8442a0780e86","commit_message":"maps: migrate player anim info tables","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T19:34:56Z","commit_sha":"1339ae452ec2906f7ccf6232d6ee70dd9503f6bf","commit_message":"maps: header funcptr naming","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T14:25:51Z","commit_sha":"0c802db6a0e8c3b5fe94f544180c8ffe510df2bc","commit_message":"replace getTPageFromBuffer with psyq macro","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T14:11:54Z","commit_sha":"0aa3e0419d5b855e7f5d522e0c6288d5b424e774","commit_message":"map7_s00: func_800D1604\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.58111,"total_code":2877980,"matched_code":2865924,"matched_code_percent":99.58109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6518,"matched_functions_percent":99.862114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T09:35:41Z","commit_sha":"696d42ee477354fdc83a81fde2c2dfe7d31b1123","commit_message":"map6_s02: simplify s_800D3C4C","measures":{"fuzzy_match_percent":99.43003,"total_code":2877980,"matched_code":2861576,"matched_code_percent":99.430016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6517,"matched_functions_percent":99.846794,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T09:18:46Z","commit_sha":"2b5150639b3027b44915930654d0b83640c1d943","commit_message":"map6_s02: func_800D1040\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.43003,"total_code":2877980,"matched_code":2861576,"matched_code_percent":99.430016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6517,"matched_functions_percent":99.846794,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-24T06:29:55Z","commit_sha":"2cb1249eea794785471164773240de61c0aa544f","commit_message":"game: rename g_DeltaTime values\n\ng_DeltaTime0 -> g_DeltaTime (main timer used in 99% of code)\ng_DeltaTime1 -> g_DeltaTimeRaw (mostly used in UI code, unaffected\nby demo timer overrides or game code pausing)\ng_DeltaTime2 -> g_GravitySpeed (only seems used in code related to Y\npositions)\n\ng_MainLoop_FrameCount -> g_TickCount","measures":{"fuzzy_match_percent":99.4039,"total_code":2877980,"matched_code":2860824,"matched_code_percent":99.403885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6516,"matched_functions_percent":99.83147,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T10:13:51Z","commit_sha":"9b4b937e0428fc8b64235082c34b0c0a5c4be131","commit_message":"map7_s03: func_800DC6DC\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: filipleple <143995184+filipleple@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.4039,"total_code":2877980,"matched_code":2860824,"matched_code_percent":99.403885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6516,"matched_functions_percent":99.83147,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T09:44:32Z","commit_sha":"ff51e7e4f2180cbcd567716b843b980323b09954","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T07:59:53Z","commit_sha":"0cb0b10ad423c35a289f80c3155ece7f1739d1c0","commit_message":"maps: minor todo fixups","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T07:13:10Z","commit_sha":"dde3c1bf712c9e9c0bea19872c4678612fbf2f8f","commit_message":"game: s_SubCharacter::field_34 -> fallSpeed_34\n\nH_BLANKS_UNKNOWN_SCALE -> H_BLANKS_GRAVITY_SCALE\n(maybe should rename the g_DeltaTime2 that's derived from it)","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T04:14:32Z","commit_sha":"a179cab921f16ee2950699e0d5f8aec8173fa34e","commit_message":"maps: fixups","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T03:54:51Z","commit_sha":"4074990d1d27ed787dc8e44cee32de77bf4126f7","commit_message":"maps: unkTable1_4C / bloodSplats_54 symbols, change include order\n\nChanged includes so each mapX_sXX.h sets up map config defines and then\nincludes maps/shared.h, instead of .c files including it\nallows shared.h to access the map-specific defines, so we can add array\nsizes and such in there","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T02:47:58Z","commit_sha":"66a51726db66a98548fdf8ee6fcb61b40df28b72","commit_message":"maps: name missed worldobjects funcs","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T02:44:04Z","commit_sha":"a25a66fdebeef902ee0283fadabc00c559ce693f","commit_message":"maps: more header symbols\n\nmerged sharedFunc_800E1114_6_s04 into Map_RoomIdxGet","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T02:25:30Z","commit_sha":"94073df91e460f27519480e66c1c2076af3f047b","commit_message":"maps: more header symbols","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T02:11:35Z","commit_sha":"e32496296d4d7d3e5b7e93a3d787597e63b087ab","commit_message":"maps: more header symbols","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T01:52:04Z","commit_sha":"bf73d16b4af2015e1f5c63c3ba966e9f8af3d7a1","commit_message":"maps: add MAP_EVENTS symbol","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T01:36:30Z","commit_sha":"0c9ae07a5efea8e5ae44fe455fb90f188e48116e","commit_message":"maps: clang-format map header.c files","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T01:35:00Z","commit_sha":"227ba0c4bdf27f31481d2259b4c020916ce8af36","commit_message":"maps: move field_D2C to header_field_D2C.h","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T01:04:52Z","commit_sha":"da8de9240ac3bda00d8710e7e4c1a72ce1bc8f14","commit_message":"maps: remove empty header array entries","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T00:54:18Z","commit_sha":"5296be0a403e69fa7534aaaf375a8b39245dadbf","commit_message":"maps: resize roadDataList_3CC, remove unk_84C\n\nthat unk field bugged me for a while, thought it was just unused data\nsince no code referenced it, but turned out roadDataList was just\nmissized, not sure where the [48] size came from, maybe SH2","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T00:41:36Z","commit_sha":"5290c6023ace1d18035bb0786e07e88c92e2dd1d","commit_message":"maps: add chara names to spawn groups","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T00:35:10Z","commit_sha":"f4f7a79c3143472315d5a64ef4bd7503bce24971","commit_message":"maps: fixup charaGroupIds_248","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-23T00:12:49Z","commit_sha":"0bf88e96dd9ce0f7039c96f88d4cd37f4777db55","commit_message":"maps: collapse chara_spawns.h initializers, remove empty spawns\n\nTODO: add header comments describing fields","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T23:56:19Z","commit_sha":"0ff71956da38b6a3621339a97096613bd65ea9f8","commit_message":"maps: move roadDataList_3CC to vc_road_data.h","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T22:58:25Z","commit_sha":"71022887e5608af18200ace798ddc3c8808e08d5","commit_message":"map7_s01: fixup func_800DD348","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T22:54:24Z","commit_sha":"8ebd60af23335f26752685b8d26690d76e415b77","commit_message":"maps: move spawns to chara_spawns.h, remove union from struct\n\nbin2c: fixed precision issue with Q8_ANGLEs, need to redo & move\nroadDataList_3CC to separate .h","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T14:12:28Z","commit_sha":"e85b4866cca1844e6997af1185964140cc6d48d8","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T12:26:53Z","commit_sha":"021823fcc7ca94725f9c23b3b668a1f4e80ca10e","commit_message":"`func_8005BF0C` -> `Gfx_DebugStringPositionSet`, demagicking, add `*_FLOOR` math macros","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T07:20:58Z","commit_sha":"47f4273fcee6ce7667ca4932f7d592060ef8e0cb","commit_message":"Fix tab widths, add padding byte comments","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T03:55:32Z","commit_sha":"daefeb50fc165f63f3943d523d57ee06eb8e90aa","commit_message":"maps: remove union from `s_MapPoint2d`, move spawns to `s_SpawnInfo`\n\nThe data inside each union field was pretty much same type so no point\nusing union for it, should make parsing them out easier.\n\nMoved chara spawn info back into separate struct, since it seems one of\nmap7_s01 funcs needs that (TODO: need to remove the union inside it for\nthat func to work though)","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-22T03:31:20Z","commit_sha":"f55e118f55e90d65b5e9ca413d538fba157157ce","commit_message":"bodyprog: remove pad fields from MapOverlayHeader","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T18:28:24Z","commit_sha":"06f4e9e185436ecc18580cfc01d4d6bce9d84d0c","commit_message":"maps: add/link header.c for all maps\n\ncreated with\nhttps://gist.github.com/emoose/5c0e948ab73980dcdf5d6dc31eb6f0d1\n\nclang-format keeps breaking all the arrays at the end :/","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T17:29:33Z","commit_sha":"d589532670b94ba5a33533530eba2a5dc184e9ad","commit_message":"map2_s00/map2_s02: header update","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T12:34:24Z","commit_sha":"b65dfe036aa3a8f316c8e570a2c0fe7cb708ac88","commit_message":"Formatting","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T10:54:58Z","commit_sha":"5c41ac667c0484a3467dc878e4238222831c6770","commit_message":"map7_s03: func_800DBA08\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.344124,"total_code":2877980,"matched_code":2859104,"matched_code_percent":99.344124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6515,"matched_functions_percent":99.81615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T08:57:56Z","commit_sha":"48ff0be943425691aac74879299fa14ad94cc0a0","commit_message":"map7_s03: func_800D8454\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.337875,"total_code":2877980,"matched_code":2858924,"matched_code_percent":99.33787,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6514,"matched_functions_percent":99.80083,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T04:30:10Z","commit_sha":"689467a4a520d387682b58176ee928f8787e3330","commit_message":"Clearer math semantics: `FP_ANGLE` -> `Q12_ANGLE`, `FP_ANGLE_PACKED` -> `Q8_ANGLE`","measures":{"fuzzy_match_percent":99.312164,"total_code":2877980,"matched_code":2858184,"matched_code_percent":99.31216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6513,"matched_functions_percent":99.78551,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T03:33:40Z","commit_sha":"cbe0ce98e55942880e7e06616a49bd5d9f4867cd","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.312164,"total_code":2877980,"matched_code":2858184,"matched_code_percent":99.31216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6513,"matched_functions_percent":99.78551,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-21T03:12:15Z","commit_sha":"5dfde5ec90654c5997146ab7e108a4c05315144c","commit_message":"Fix tabulation","measures":{"fuzzy_match_percent":99.312164,"total_code":2877980,"matched_code":2858184,"matched_code_percent":99.31216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6513,"matched_functions_percent":99.78551,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T23:41:38Z","commit_sha":"f2e8343745d469e0d24e414b705f32fc84d1a89e","commit_message":"bodyprog: rename s_EventParam -> s_EventData","measures":{"fuzzy_match_percent":99.312164,"total_code":2877980,"matched_code":2858184,"matched_code_percent":99.31216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6513,"matched_functions_percent":99.78551,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T23:17:33Z","commit_sha":"ba83b2083231a715ef627467b545413d147df6a0","commit_message":"map2_s00/map2_s02: add header.c, bin2c fixup\n\nadded hacky fixup to bin2c to fix some union bitfield fields being output as random enum\n(still needs proper fix to let bin2c see the actual type for those fields)\n\nheader.c made with\n`tools/bin2c.py @tools/bin2c.cfg -o 0x4 -s ctx.c -t s_MapOverlayHeader -u s_MapPoint2d.data=spawnInfo --sym configs/USA/maps/sym.map2_s02.txt -b assets/USA/VIN/MAP2_S02.BIN > src/maps/map2_s02/map2_s02_header.c`","measures":{"fuzzy_match_percent":99.312164,"total_code":2877980,"matched_code":2858184,"matched_code_percent":99.31216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6513,"matched_functions_percent":99.78551,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T21:26:04Z","commit_sha":"b592ffbd3054d48aca676a9a2047e19a399388cd","commit_message":"maps: build/link events_data.c files","measures":{"fuzzy_match_percent":99.312164,"total_code":2877980,"matched_code":2858184,"matched_code_percent":99.31216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6513,"matched_functions_percent":99.78551,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T19:11:40Z","commit_sha":"456cec7834195ba552660bbb7aeb540483afd60b","commit_message":"CI: install binutils-mipsel-linux-gnu to support newer maspsx\n\nmaybe container needs to be updated with it\n\nor is there a switch we can use with maspsx to use the original\n`binutils-mips-linux-gnu`\ninstead?","measures":{"fuzzy_match_percent":99.312164,"total_code":2877980,"matched_code":2858184,"matched_code_percent":99.31216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6513,"matched_functions_percent":99.78551,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T15:05:28Z","commit_sha":"7bb4af5f6e14f94bb29f9c9c49aab19149b1583e","commit_message":"map7_s03: func_800DBD94","measures":{"fuzzy_match_percent":99.30452,"total_code":2877980,"matched_code":2857964,"matched_code_percent":99.30451,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6512,"matched_functions_percent":99.77019,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T12:31:31Z","commit_sha":"66acaca00ce136b31b8e60d1c68150124f5f8abe","commit_message":"Macro name fixup","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T12:10:55Z","commit_sha":"6d0106a433db74dbddb07714c161337c9ee54b4c","commit_message":"Math fixups","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T06:50:52Z","commit_sha":"53fd564c5c985df036439257441ac2d32fa0a76e","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T02:40:26Z","commit_sha":"a54eb24f4409b4dfd48ada1a71eb1f0b228f534f","commit_message":"map0_s01: event flag naming","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T02:24:06Z","commit_sha":"d88822d97bb2d8765eff5924cd11a1d596da7018","commit_message":"build fix","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T01:40:55Z","commit_sha":"7a4011f771a5d583f8fcdcbd2a55312859b9be0f","commit_message":"maps: remove empty fields from events","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T01:29:09Z","commit_sha":"8378cd137ebbabb4acf443d22e5eadd95a7857ca","commit_message":"maps: parse s_EventParams into *_events_data.c\n\nTODO:\n- not currently linked into each map yet, need to setup splits for\n  them\n- a lot of non-enum eventflags in these that need to be added to\n  event_flags.h\n- MAP_POINTS array needs to be parsed by going through each of these\n  events, and use pointOfInterestIdx_5 + triggerType_4_0 to use correct\n  union type for them\n\nscript used to parse these (ugly)\nhttps://gist.github.com/emoose/fa59b510029682558c4542fcfc314374","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T00:45:09Z","commit_sha":"20e0386fc579e77036bb3c4e711a36a80b7530f7","commit_message":"maps: annotate SysState_EventCallFunc func names","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T00:22:15Z","commit_sha":"40e8c7cae1918861e54c45c27cdf39ddca7820e1","commit_message":"bodyprog: add event flags","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-20T00:12:21Z","commit_sha":"d980308aad98fe0f6c497faa588d9cf2d6dc530a","commit_message":"bodyprog: name `s_EventParam::field_5` -> `pointOfInterestIdx_5`","measures":{"fuzzy_match_percent":99.248055,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T23:55:02Z","commit_sha":"dffa104b5249f8722f73dc5089827af573bbb80d","commit_message":"bodyprog: name touchFacing fields","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T23:48:39Z","commit_sha":"5859f32d72fd15c23e4ea6526d62a3150ee853e3","commit_message":"Misc fixups","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T19:32:56Z","commit_sha":"6c27911ce3001370401bf0bfa18af7a2f9874dce","commit_message":"map6_s04: FS_BUFFER_6 fixups 2","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T19:25:12Z","commit_sha":"7d62ed99f1c2052b86192acd93cb22b0f6ab54e8","commit_message":"map6_s04: FS_BUFFER_6 fixups","measures":{"fuzzy_match_percent":99.248055,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T19:13:14Z","commit_sha":"56f8ee6e29b3ee41b0f8e9ad47602dea9f55bda7","commit_message":"map6_s04: func_800DE5CC, fixups\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.24808,"total_code":2877980,"matched_code":2856340,"matched_code_percent":99.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6511,"matched_functions_percent":99.75487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T19:01:38Z","commit_sha":"8c58f78ebc38e2a4d2b8835e8330ebc6d65a891f","commit_message":"map6_s04: match 2 funcs\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.24474,"total_code":2877980,"matched_code":2856244,"matched_code_percent":99.24475,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6510,"matched_functions_percent":99.73955,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T14:12:44Z","commit_sha":"5e30716aed412d889143a392b487ed72b4fc6672","commit_message":"Demagicking","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T13:37:34Z","commit_sha":"1d561784bf5bc3b5e8544ff274d6ef27704c8daa","commit_message":"`UNK_PACKED_DATA` -> `MODEL_BONE`","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T12:37:55Z","commit_sha":"afdb34f3754d258fa392b889ed22e3853720da71","commit_message":"Docs, fixups","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T11:12:16Z","commit_sha":"609a034baea5f84122d5f106112969550996db3a","commit_message":"`const`ify function params, fixups","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T07:47:50Z","commit_sha":"2dccfede8e520d8c4c15344df35815f69e6de6d6","commit_message":"`func_800DC650` -> `Math_DistanceBetweenPositionsCheck`","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T07:30:13Z","commit_sha":"8e1f51a909139d759e3cd66582c44c58d359520a","commit_message":"`sharedFunc_800CD7F8_3_s03`: docs","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-19T07:19:45Z","commit_sha":"a2d8f7a3e929ed152cae09036a028cfb5b3591ef","commit_message":"Tidying pass, docs","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T22:28:03Z","commit_sha":"42eba372e0498d6a7502a20ca3a07857130ac269","commit_message":"map7_s03: add 3 funcs\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.23707,"total_code":2877980,"matched_code":2856024,"matched_code_percent":99.2371,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6508,"matched_functions_percent":99.7089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T21:28:49Z","commit_sha":"4666c70706911a1ada94bb13fa0e7966b93a6562","commit_message":"map7_s03: func_800E2C28","measures":{"fuzzy_match_percent":99.19678,"total_code":2877980,"matched_code":2854864,"matched_code_percent":99.1968,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6505,"matched_functions_percent":99.66293,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T21:18:35Z","commit_sha":"705583aac1bd7ea61df10a037e6538e346cb3153","commit_message":"map7_s03: func_800DF750\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.18066,"total_code":2877980,"matched_code":2854400,"matched_code_percent":99.18067,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6504,"matched_functions_percent":99.64761,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T17:15:22Z","commit_sha":"551f5980987be9225fa8632fdf3ed59ea9859773","commit_message":"map7_s03: fixup","measures":{"fuzzy_match_percent":99.174805,"total_code":2877980,"matched_code":2854232,"matched_code_percent":99.17484,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6503,"matched_functions_percent":99.6323,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T16:51:44Z","commit_sha":"907804142baada7535aa8b37747e4a31da1a88f9","commit_message":"map7_s03: func_800E2968","measures":{"fuzzy_match_percent":99.174805,"total_code":2877980,"matched_code":2854232,"matched_code_percent":99.17484,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6503,"matched_functions_percent":99.6323,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T15:22:24Z","commit_sha":"aa62903127a10ba902ebbbe013385ec8f16ef3b1","commit_message":"map7_s03: func_800DF1D4","measures":{"fuzzy_match_percent":99.150345,"total_code":2877980,"matched_code":2853528,"matched_code_percent":99.150375,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6502,"matched_functions_percent":99.616974,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T14:54:04Z","commit_sha":"d4e387646bd26657810ca7baee1bc25d29e267a9","commit_message":"map7_s03: fixup","measures":{"fuzzy_match_percent":99.1441,"total_code":2877980,"matched_code":2853348,"matched_code_percent":99.14412,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6501,"matched_functions_percent":99.601654,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T14:48:06Z","commit_sha":"6852a06088b747ae408fadd3029ebe4689df319e","commit_message":"map7_s03: match 2 funcs, minor fixups\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.1441,"total_code":2877980,"matched_code":2853348,"matched_code_percent":99.14412,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6501,"matched_functions_percent":99.601654,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T14:29:31Z","commit_sha":"50bf78e0f63e35ed2596b9468ccfdd4535761ef2","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":99.09475,"total_code":2877980,"matched_code":2851928,"matched_code_percent":99.09479,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6499,"matched_functions_percent":99.571014,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T13:16:01Z","commit_sha":"4021bb76348eef1e49a084211cc08a21d7d3a433","commit_message":"Apply new math macros","measures":{"fuzzy_match_percent":99.09475,"total_code":2877980,"matched_code":2851928,"matched_code_percent":99.09479,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6499,"matched_functions_percent":99.571014,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T02:33:27Z","commit_sha":"a2748a8291f11207493883247432642663fe08d1","commit_message":"Simplify, add FP math macros","measures":{"fuzzy_match_percent":99.09475,"total_code":2877980,"matched_code":2851928,"matched_code_percent":99.09479,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6499,"matched_functions_percent":99.571014,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T01:13:21Z","commit_sha":"c3449eb3b5f44343b6a06442ca98b6a27c2caaee","commit_message":"Fixups","measures":{"fuzzy_match_percent":99.09475,"total_code":2877980,"matched_code":2851928,"matched_code_percent":99.09479,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6499,"matched_functions_percent":99.571014,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T00:41:13Z","commit_sha":"e1336d4d6d09da2afcb514dae762192c391a7425","commit_message":"map7_s03: match 5 funcs","measures":{"fuzzy_match_percent":99.09475,"total_code":2877980,"matched_code":2851928,"matched_code_percent":99.09479,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6499,"matched_functions_percent":99.571014,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-18T00:01:07Z","commit_sha":"2f35e35b165158813a8dc32ba7e3f64b67e6b478","commit_message":"map7_s03: match 2 funcs\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":99.06806,"total_code":2877980,"matched_code":2851160,"matched_code_percent":99.0681,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6494,"matched_functions_percent":99.49441,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T22:43:28Z","commit_sha":"b3fce2def972e5a0768698f0e0d3408869933251","commit_message":"map7_s03: func_800DDF3C","measures":{"fuzzy_match_percent":99.06223,"total_code":2877980,"matched_code":2850992,"matched_code_percent":99.062256,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6492,"matched_functions_percent":99.46377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T22:26:36Z","commit_sha":"3ea95a13a974d977bf2eda8fdba05c96a2fc1eea","commit_message":"map7_s03: match 2 funcs","measures":{"fuzzy_match_percent":99.03193,"total_code":2877980,"matched_code":2850120,"matched_code_percent":99.03196,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6491,"matched_functions_percent":99.44844,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T21:28:52Z","commit_sha":"fe2a7ffd8292e9831a75da834b4018e515b95bd1","commit_message":"map7_s03: func_800DFF60","measures":{"fuzzy_match_percent":99.00802,"total_code":2877980,"matched_code":2849432,"matched_code_percent":99.00806,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6489,"matched_functions_percent":99.41781,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T21:06:17Z","commit_sha":"6331276e654b7d3869e6028777bbb1c22b6e8e37","commit_message":"map7_s03: func_800DE68C","measures":{"fuzzy_match_percent":98.960075,"total_code":2877980,"matched_code":2848052,"matched_code_percent":98.9601,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6488,"matched_functions_percent":99.40248,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T20:20:40Z","commit_sha":"78dccc9a0441581b677e0407f44ae2c40b639a28","commit_message":"map7_s03: func_800DE2A4","measures":{"fuzzy_match_percent":98.92643,"total_code":2877980,"matched_code":2847084,"matched_code_percent":98.92647,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6487,"matched_functions_percent":99.38716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T19:07:36Z","commit_sha":"38ac8972539d5542e71f9c46af93e4718199817f","commit_message":"map7_s03: make `s_func_800E1FE0` array","measures":{"fuzzy_match_percent":98.89169,"total_code":2877980,"matched_code":2846084,"matched_code_percent":98.89172,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6486,"matched_functions_percent":99.37184,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T18:52:20Z","commit_sha":"7e5284474a3cca1706a83ea0b13436775fee3f24","commit_message":"map7_s03: fixup","measures":{"fuzzy_match_percent":98.89169,"total_code":2877980,"matched_code":2846084,"matched_code_percent":98.89172,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6486,"matched_functions_percent":99.37184,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T18:40:35Z","commit_sha":"a70f217e2cc51c9035bc013fd8c6cc2a8745f843","commit_message":"map7_s03: func_800E17B8","measures":{"fuzzy_match_percent":98.89169,"total_code":2877980,"matched_code":2846084,"matched_code_percent":98.89172,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6486,"matched_functions_percent":99.37184,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T18:34:18Z","commit_sha":"b37ebfdd04db54f7a1a0f9d989d256bb065cb233","commit_message":"map7_s03: fixup","measures":{"fuzzy_match_percent":98.88627,"total_code":2877980,"matched_code":2845928,"matched_code_percent":98.88631,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6485,"matched_functions_percent":99.35652,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T18:30:36Z","commit_sha":"c62a835d32d6f382c3c27b1136acb1eeb1872ea7","commit_message":"map7_s03: func_800E20A4","measures":{"fuzzy_match_percent":98.88627,"total_code":2877980,"matched_code":2845928,"matched_code_percent":98.88631,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6485,"matched_functions_percent":99.35652,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T15:36:58Z","commit_sha":"b1f0562be87153421bf4e9079b19665304026730","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":98.86821,"total_code":2877980,"matched_code":2845408,"matched_code_percent":98.86823,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6484,"matched_functions_percent":99.341194,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T13:20:28Z","commit_sha":"a43245ad6f1172ad8d6851d9c9252555cee4dd5e","commit_message":"map7_s03: add 6 funcs\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.86821,"total_code":2877980,"matched_code":2845408,"matched_code_percent":98.86823,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6484,"matched_functions_percent":99.341194,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T03:44:58Z","commit_sha":"057f5d9d38fd536680bc54dfb55bdf352fb83e16","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":98.78718,"total_code":2877980,"matched_code":2843076,"matched_code_percent":98.78721,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6478,"matched_functions_percent":99.249275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-17T00:39:14Z","commit_sha":"b4b972cd039787567cee78ea9ca94ed5e1ac8e56","commit_message":"map7_s03: func_800E1854","measures":{"fuzzy_match_percent":98.78718,"total_code":2877980,"matched_code":2843076,"matched_code_percent":98.78721,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6478,"matched_functions_percent":99.249275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T23:42:37Z","commit_sha":"0439aa3d1889199aa8b772dc1f2cdd32e9f0c586","commit_message":"map7_s03: func_800E1FE0","measures":{"fuzzy_match_percent":98.72004,"total_code":2877980,"matched_code":2841144,"matched_code_percent":98.72008,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6477,"matched_functions_percent":99.23395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T23:23:53Z","commit_sha":"9dbe077534719e9fba011f006ae6e56d5b09607d","commit_message":"map7_s03: func_800E16FC","measures":{"fuzzy_match_percent":98.713234,"total_code":2877980,"matched_code":2840948,"matched_code_percent":98.713264,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6476,"matched_functions_percent":99.21863,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T20:29:32Z","commit_sha":"68ace3799520e5c7be8ffbc261de975f58ce7ccb","commit_message":"map7_s03: add 7 funcs\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.70837,"total_code":2877980,"matched_code":2840808,"matched_code_percent":98.7084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6475,"matched_functions_percent":99.20331,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T16:36:54Z","commit_sha":"ac07feb66ce1f58944e2f25a0c2b2e4d8d3dc28a","commit_message":"map7_s03: func_800E14DC","measures":{"fuzzy_match_percent":98.629425,"total_code":2877980,"matched_code":2838536,"matched_code_percent":98.629456,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6468,"matched_functions_percent":99.09606,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T15:48:03Z","commit_sha":"2c7929fa70935b87b58e667406e63e1353d221b4","commit_message":"map7_s03: add 13 funcs","measures":{"fuzzy_match_percent":98.61052,"total_code":2877980,"matched_code":2837992,"matched_code_percent":98.61056,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6467,"matched_functions_percent":99.08074,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T07:04:45Z","commit_sha":"1ece5a03222dbd37cb5fd480aff30eec79456e1d","commit_message":"Remove all stray spaces and random tabs","measures":{"fuzzy_match_percent":98.44292,"total_code":2877980,"matched_code":2833168,"matched_code_percent":98.44293,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6454,"matched_functions_percent":98.88157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T05:27:12Z","commit_sha":"fd079295497abf459b983feeb13601794e762df9","commit_message":"More systems distribution and data migration/distribution (#481)","measures":{"fuzzy_match_percent":98.44292,"total_code":2877980,"matched_code":2833168,"matched_code_percent":98.44293,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6454,"matched_functions_percent":98.88157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":179,"complete_units":0}},{"timestamp":"2026-02-16T02:41:48Z","commit_sha":"1635daf14231d98614ae07973f75358491b171b1","commit_message":"Tidying pass\n\nCo-Authored-By: dreamingmoths <252494949+dreamingmoths@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.44292,"total_code":2877980,"matched_code":2833168,"matched_code_percent":98.44293,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6454,"matched_functions_percent":98.88157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-15T23:31:34Z","commit_sha":"1dc93b6621c350aa2aa1da18918857d1b7e9cd0b","commit_message":"map7_s03: match 5 funcs","measures":{"fuzzy_match_percent":98.44292,"total_code":2877980,"matched_code":2833168,"matched_code_percent":98.44293,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6454,"matched_functions_percent":98.88157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-15T22:48:21Z","commit_sha":"fb4f7530366d6ac0f00772be9415fcfd36601baa","commit_message":"map7_s03: match 3 funcs","measures":{"fuzzy_match_percent":98.396904,"total_code":2877980,"matched_code":2831844,"matched_code_percent":98.396935,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6449,"matched_functions_percent":98.80496,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-15T22:30:18Z","commit_sha":"97790d8b448616c5cba199abb60ac83036ec9f2b","commit_message":"map7_s03: match 3 funcs\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.36771,"total_code":2877980,"matched_code":2831004,"matched_code_percent":98.367744,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6446,"matched_functions_percent":98.759,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-15T03:19:29Z","commit_sha":"e80f99df2965816a19035e52559ff097aca9eb1f","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":98.34173,"total_code":2877980,"matched_code":2830256,"matched_code_percent":98.34175,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6443,"matched_functions_percent":98.71304,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-14T21:30:11Z","commit_sha":"7679ae604fa05ac8b6763821957588116554e6f2","commit_message":"fixup pointer accesses with `Chara_AttackReceivedSet` macro","measures":{"fuzzy_match_percent":98.34173,"total_code":2877980,"matched_code":2830256,"matched_code_percent":98.34175,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6443,"matched_functions_percent":98.71304,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-14T20:57:41Z","commit_sha":"0ebf376cd643c595332cba8e3afb711940b06385","commit_message":"map7_s03: match 5 funcs","measures":{"fuzzy_match_percent":98.34173,"total_code":2877980,"matched_code":2830256,"matched_code_percent":98.34175,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6443,"matched_functions_percent":98.71304,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-14T18:24:04Z","commit_sha":"6af01c6bd6a76e336af2dd66541790adddd822da","commit_message":"map7_s03: func_800DA08C\n\nCo-authored-by: Ryan-Myers <Ryan-Myers@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.32185,"total_code":2877980,"matched_code":2829684,"matched_code_percent":98.32188,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6438,"matched_functions_percent":98.63643,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-14T13:49:09Z","commit_sha":"c76e55e44db418dcc73b61bfe815829b953d9e26","commit_message":"map7_s03: func_800D7F2C","measures":{"fuzzy_match_percent":98.313644,"total_code":2877980,"matched_code":2829448,"matched_code_percent":98.313675,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6437,"matched_functions_percent":98.62111,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-14T01:51:22Z","commit_sha":"8b432ca64b6bad9f1a3c695be087430d2578178c","commit_message":"map7_s03: match 5 funcs\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.28696,"total_code":2877980,"matched_code":2828680,"matched_code_percent":98.286995,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6436,"matched_functions_percent":98.6058,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-14T00:57:22Z","commit_sha":"6185efc4fc2665fab684a9f3735fa0824f15d450","commit_message":"map7_s03: match 5 funcs","measures":{"fuzzy_match_percent":98.24706,"total_code":2877980,"matched_code":2827532,"matched_code_percent":98.24711,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6431,"matched_functions_percent":98.52918,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-14T00:24:42Z","commit_sha":"9b23cab02b40f2559267170b0878c46663ff6a67","commit_message":"map7_s03: match 5 funcs","measures":{"fuzzy_match_percent":98.21259,"total_code":2877980,"matched_code":2826540,"matched_code_percent":98.21264,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6426,"matched_functions_percent":98.45258,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-13T23:38:01Z","commit_sha":"ada58cc9aebbee27afc11d075cf41e1462c379e2","commit_message":"map7_s03: rename `arg0` to `ot`\n\nUnsure if this is PACKET* or GsOT_TAG*, void* works for now","measures":{"fuzzy_match_percent":98.18591,"total_code":2877980,"matched_code":2825772,"matched_code_percent":98.18595,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6421,"matched_functions_percent":98.37598,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-13T23:34:22Z","commit_sha":"e3dd48ef66c719911b4fd934bf835f8fe3a2abf0","commit_message":"map7_s03: match 5 funcs","measures":{"fuzzy_match_percent":98.18591,"total_code":2877980,"matched_code":2825772,"matched_code_percent":98.18595,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6421,"matched_functions_percent":98.37598,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-13T22:48:01Z","commit_sha":"0d93595d5d150719585e109abb828a7d2d1ad43b","commit_message":"map7_s03: func_800D822C","measures":{"fuzzy_match_percent":98.1602,"total_code":2877980,"matched_code":2825032,"matched_code_percent":98.16024,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6416,"matched_functions_percent":98.29937,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-13T16:18:53Z","commit_sha":"5aa53e2ffe7d66598a01d2403081287c16699a15","commit_message":"map7_s03: func_800DD464","measures":{"fuzzy_match_percent":98.155754,"total_code":2877980,"matched_code":2824904,"matched_code_percent":98.15579,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6415,"matched_functions_percent":98.28406,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-13T12:21:33Z","commit_sha":"90e73bbfd1b4243c10da02d8a64f4252fdd24bf8","commit_message":"map7_s03: add 10 funcs\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.15215,"total_code":2877980,"matched_code":2824800,"matched_code_percent":98.152176,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6414,"matched_functions_percent":98.26873,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-12T20:32:11Z","commit_sha":"22ae47d049d9071c1f5107fd438b9047d65f4669","commit_message":"map7_s03: add 10 funcs\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":98.04597,"total_code":2877980,"matched_code":2821744,"matched_code_percent":98.04599,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6404,"matched_functions_percent":98.115524,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-12T16:59:56Z","commit_sha":"e2c24794caf427b70fd4c17e0ed2f47574afac47","commit_message":"map7_s03: func_800DBCA4","measures":{"fuzzy_match_percent":97.96525,"total_code":2877980,"matched_code":2819420,"matched_code_percent":97.96524,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6394,"matched_functions_percent":97.96231,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-12T16:24:35Z","commit_sha":"fd04df31c2de5ac6cac6f78de007e2f9453ed59c","commit_message":"map7_s03: add 11 funcs\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":97.95691,"total_code":2877980,"matched_code":2819180,"matched_code_percent":97.9569,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6393,"matched_functions_percent":97.94699,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-12T00:13:01Z","commit_sha":"be26b47e9308afb3401297f44b61a7bd59f4475a","commit_message":"map7_s03: func_800DC544","measures":{"fuzzy_match_percent":97.86504,"total_code":2877980,"matched_code":2816536,"matched_code_percent":97.865036,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6382,"matched_functions_percent":97.77846,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-11T23:58:06Z","commit_sha":"58a829334b837493c7ba942ef784480842d59479","commit_message":"map7_s03: func_800DC49C","measures":{"fuzzy_match_percent":97.85572,"total_code":2877980,"matched_code":2816268,"matched_code_percent":97.85572,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6381,"matched_functions_percent":97.76314,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-11T23:48:05Z","commit_sha":"6170a29e6205665ca0f337f7f5050a8b105906d0","commit_message":"map7_s03: add missing field","measures":{"fuzzy_match_percent":97.84988,"total_code":2877980,"matched_code":2816100,"matched_code_percent":97.849884,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6380,"matched_functions_percent":97.74782,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-11T17:21:34Z","commit_sha":"bfefc16e8e851d0a874bbaf30ee25331de588d23","commit_message":"map6_s04: func_800E75B8\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":97.84376,"total_code":2877980,"matched_code":2815924,"matched_code_percent":97.843765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6379,"matched_functions_percent":97.7325,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-11T14:55:27Z","commit_sha":"90d7eaa833be4ae439f27ed9d98c788c82b02f20","commit_message":"map6_s02: fixup","measures":{"fuzzy_match_percent":97.812225,"total_code":2877980,"matched_code":2815016,"matched_code_percent":97.81222,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6378,"matched_functions_percent":97.71717,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-11T14:51:39Z","commit_sha":"bf24399cd3ba8a9d49b6415ed3bab31d5f33cd8b","commit_message":"map6_s02: func_800CED74\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":97.812225,"total_code":2877980,"matched_code":2815016,"matched_code_percent":97.81222,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6378,"matched_functions_percent":97.71717,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-10T17:39:39Z","commit_sha":"c23ef6b2bc6b89f821408c9dab0abf0c9dfcd7d0","commit_message":"map7_s03: match 3 funcs","measures":{"fuzzy_match_percent":97.793724,"total_code":2877980,"matched_code":2814484,"matched_code_percent":97.79373,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6377,"matched_functions_percent":97.70185,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-10T14:01:59Z","commit_sha":"6b60408497ba1e94be983c673093512f6614f6c1","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":97.78427,"total_code":2877980,"matched_code":2814212,"matched_code_percent":97.78428,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6374,"matched_functions_percent":97.65589,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-10T11:48:11Z","commit_sha":"0ac5f6dbce972e4590350f12de8d80c2fadceef2","commit_message":"map6_s03: func_800D89A0\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":97.78427,"total_code":2877980,"matched_code":2814212,"matched_code_percent":97.78428,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6374,"matched_functions_percent":97.65589,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-10T09:51:41Z","commit_sha":"c5a104cb0185812640d85072ac2984521b63015d","commit_message":"map7_s02: add 2 funcs\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":97.69714,"total_code":2877980,"matched_code":2811704,"matched_code_percent":97.697136,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6373,"matched_functions_percent":97.64057,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-09T14:08:39Z","commit_sha":"d86bbcfa81a59391e0450a696f22a3e7c446047c","commit_message":"map7_s02: add 2 funcs\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":97.4043,"total_code":2877980,"matched_code":2803276,"matched_code_percent":97.40429,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6371,"matched_functions_percent":97.609924,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-09T11:32:44Z","commit_sha":"58ce66a3511f2e6b308c74a2023ad1360a938ecf","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":97.34939,"total_code":2877980,"matched_code":2801696,"matched_code_percent":97.349396,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6369,"matched_functions_percent":97.579285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-09T00:09:47Z","commit_sha":"a868ca7404ded4844f172011d86a2ac29a24b034","commit_message":"Systems distribution and recognition (#480)\n\n* Systems distribution and recognition - 1\n\nCommit focused mainly in the save system and memory card system\n\n* Systems distribution and recognition - 2\n\nI forgot what I did exactly, but for the most part this commit intends to recognize most of the memcard system and renames\n\n* Systems distribution and recognition - 3\n\nsplitting\n\n* Systems distribution and recognition - 4\n\nI keep forgetting what I'm doing :skull:, but I think it's mostly bss data migration on the engine\n\n* Systems distribution and recognition - 4\n\nAlmost complete `bss` data migration\n\n* Systems distribution and recognition - 5\n\nAnother split and working into adding `COMMON` segment support\n\n* Systems distribution and recognition - 6\n\nCompilation issues fixes\n\n* Systems distribution and recognition - 7\n\nFixes\n\n* Systems distribution and recognition - 8\n\n`COMMON` support adjustment","measures":{"fuzzy_match_percent":97.34939,"total_code":2877980,"matched_code":2801696,"matched_code_percent":97.349396,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6527,"matched_functions":6369,"matched_functions_percent":97.579285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":169,"complete_units":0}},{"timestamp":"2026-02-08T21:28:06Z","commit_sha":"25dad1c7ae9724c49ed0af74092805f1e509c7f4","commit_message":"maps: share sharedFunc_800DB60C_7_s01","measures":{"fuzzy_match_percent":97.34836,"total_code":2876860,"matched_code":2800576,"matched_code_percent":97.34836,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6367,"matched_functions_percent":97.578545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-08T20:27:33Z","commit_sha":"b5d1f0123be0f40178e661ff2dbe63506a6b4852","commit_message":"maps: share sharedFunc_800D15F0_3_s01","measures":{"fuzzy_match_percent":97.27855,"total_code":2876860,"matched_code":2798568,"matched_code_percent":97.27856,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6366,"matched_functions_percent":97.56322,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-08T18:52:03Z","commit_sha":"b327fca4ff5f39d1aa5c8c91491d004125de9aa0","commit_message":"map7_s01: add func_800DB60C","measures":{"fuzzy_match_percent":97.03913,"total_code":2876860,"matched_code":2791680,"matched_code_percent":97.03913,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6364,"matched_functions_percent":97.53256,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-08T16:56:45Z","commit_sha":"b295096ba2e2decc4f76be539f345a845e69d866","commit_message":"maps: share sharedFunc_800D0110_7_s00","measures":{"fuzzy_match_percent":96.96946,"total_code":2876860,"matched_code":2789676,"matched_code_percent":96.969475,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6363,"matched_functions_percent":97.51724,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-08T15:20:00Z","commit_sha":"6ee7f0c75fce73cdb243e01e6e56a08876e9a7ab","commit_message":"map7_s00: add func_800D0110\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":96.74214,"total_code":2876860,"matched_code":2783136,"matched_code_percent":96.74214,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6360,"matched_functions_percent":97.47127,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-04T06:52:11Z","commit_sha":"cb75c87513507633e7b6f0053dece1709aa6d5c2","commit_message":"De-hexing","measures":{"fuzzy_match_percent":96.66635,"total_code":2876860,"matched_code":2780956,"matched_code_percent":96.66637,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6359,"matched_functions_percent":97.45594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-03T17:22:47Z","commit_sha":"9fd587ce8fef7758fec8ecd739433552a2cc0ab5","commit_message":"map6_s04: add 4 funcs\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":96.66635,"total_code":2876860,"matched_code":2780956,"matched_code_percent":96.66637,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6359,"matched_functions_percent":97.45594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-03T10:49:53Z","commit_sha":"15d50c0a57543ef89b3508d777538e180c84228b","commit_message":"map6_s04: func_800E636C\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":96.575005,"total_code":2876860,"matched_code":2778328,"matched_code_percent":96.57501,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6355,"matched_functions_percent":97.39463,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-02T12:40:41Z","commit_sha":"692fa50a6cc2394ea9c0819bb8510c90a5bd480a","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":96.42735,"total_code":2876860,"matched_code":2774080,"matched_code_percent":96.42736,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6352,"matched_functions_percent":97.34866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-02T11:27:20Z","commit_sha":"d1b87aee1164e40c22a0584d152818d6452095a7","commit_message":"map6_s04: add 10 funcs\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":96.42735,"total_code":2876860,"matched_code":2774080,"matched_code_percent":96.42736,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6352,"matched_functions_percent":97.34866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-02T10:22:49Z","commit_sha":"fce34257bb30fbc349fff3f56682197c22ac8a1d","commit_message":"map6_s04: add 10 funcs","measures":{"fuzzy_match_percent":96.33238,"total_code":2876860,"matched_code":2771348,"matched_code_percent":96.33239,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6342,"matched_functions_percent":97.195404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-02-01T14:54:24Z","commit_sha":"2e1ebea80808d75c69bd46c267f8e0f265f5775e","commit_message":"lzss: update comment, minor larval_stalker fixup","measures":{"fuzzy_match_percent":96.21601,"total_code":2876860,"matched_code":2768000,"matched_code_percent":96.21601,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6332,"matched_functions_percent":97.042145,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-31T13:23:49Z","commit_sha":"9cee9ebc206a13df13059519211f3c9746196b50","commit_message":"map6_s04: add 12 funcs","measures":{"fuzzy_match_percent":96.21601,"total_code":2876860,"matched_code":2768000,"matched_code_percent":96.21601,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6332,"matched_functions_percent":97.042145,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-31T04:53:26Z","commit_sha":"86e0ca3d5cff6bf76c8edddf016b2a2da03494e8","commit_message":"Minor changes","measures":{"fuzzy_match_percent":96.106026,"total_code":2876860,"matched_code":2764836,"matched_code_percent":96.10603,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6320,"matched_functions_percent":96.85824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-30T12:06:25Z","commit_sha":"71ba1f7a9c6c0f5bbe36b4cb214cbdcf84de8f59","commit_message":"Formatting","measures":{"fuzzy_match_percent":96.106026,"total_code":2876860,"matched_code":2764836,"matched_code_percent":96.10603,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6320,"matched_functions_percent":96.85824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-30T08:55:00Z","commit_sha":"1a046c0b6000fb13fa4a013f76a3fbf77067dd75","commit_message":"map5_s00: add 2 funcs\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":96.106026,"total_code":2876860,"matched_code":2764836,"matched_code_percent":96.10603,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6320,"matched_functions_percent":96.85824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T14:59:34Z","commit_sha":"9ef2eba80dbf63c7c2785d517ca99f924e877c91","commit_message":"Field comments","measures":{"fuzzy_match_percent":96.07292,"total_code":2876860,"matched_code":2763884,"matched_code_percent":96.072945,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6318,"matched_functions_percent":96.82758,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T14:58:50Z","commit_sha":"f15984ec7e9feb3f28379815a05472d96f7b533c","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":96.07292,"total_code":2876860,"matched_code":2763884,"matched_code_percent":96.072945,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6318,"matched_functions_percent":96.82758,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T13:14:52Z","commit_sha":"cb1b3d5abddf224c8eaa33439f0866434c183293","commit_message":"map6_s04: add 13 funcs\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":96.07292,"total_code":2876860,"matched_code":2763884,"matched_code_percent":96.072945,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6318,"matched_functions_percent":96.82758,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T11:19:04Z","commit_sha":"9cc43279738fb7f834cf60962de63bb849ab351f","commit_message":"Fixups","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T11:05:26Z","commit_sha":"796acd7f405f0050ae83d9e6a88a46f143c959f9","commit_message":"Maps: demagic Twinfeeler values","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T10:51:00Z","commit_sha":"bb17c9cdc159a31cfc5285d201735f5b84542579","commit_message":"Maps: name Twinfeeler control funcs, sort decls","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T10:29:58Z","commit_sha":"ce10276171ca488adc296821d804b8a7f2a03918","commit_message":"Name local vars, de-hexing","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T10:09:32Z","commit_sha":"874bcf8ea2eb9465469ab754d3eee774bc0b393d","commit_message":"Update sound_effects.h","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T10:02:30Z","commit_sha":"d429990f4efedacf421a3fbe927737eeed4f77ab","commit_message":"Add `twinfeeler.h`","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-29T09:52:33Z","commit_sha":"d504f59caa92fa18af83e895c9e8823c9293d717","commit_message":"Formatting fixes","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T20:52:43Z","commit_sha":"a28870ac6c6147d88b5fff71c1c8b188ce4cb627","commit_message":"RNG fixups","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T19:25:59Z","commit_sha":"7cec2fd59f7df071f4407188a28158fc7de7337c","commit_message":"RNG fixups","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T19:16:25Z","commit_sha":"c70363e26269f281efb2ad1fce7ce561789b0305","commit_message":"Misc fixups","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T18:23:28Z","commit_sha":"88f94565a1f98d8536233bcff2680c05e39460c2","commit_message":"maps: fixup","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T18:14:41Z","commit_sha":"5d39d84bf8bb84ddf9fb073c3491db73848e0413","commit_message":"maps: add func decls to hanged_scratcher.h","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T18:09:02Z","commit_sha":"3afba334125a0b1faa5dfaf58d728f9667e2e05b","commit_message":"maps: remove old HangedScratcher headers","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T18:04:26Z","commit_sha":"0390423f92bfab4ec2c79da0051ce24281a0f5ef","commit_message":"maps: merge HangedScratcher code to hanged_scratcher.c\n\nTODO: check all func decls are inside hanged_scratcher.h","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T15:27:04Z","commit_sha":"f373acdeab2882e184e7dbb9e1a8eeea30c3a312","commit_message":"maps: Ai_HangedScratcher_Control_5\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":95.59131,"total_code":2876860,"matched_code":2750028,"matched_code_percent":95.59131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6305,"matched_functions_percent":96.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-28T10:09:56Z","commit_sha":"9649a274abe2c6d5f93807348adf7c8a8b09e27a","commit_message":"map5_s00: add 14 funcs\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":95.56099,"total_code":2876860,"matched_code":2749156,"matched_code_percent":95.56099,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6303,"matched_functions_percent":96.5977,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-27T15:02:23Z","commit_sha":"8ceb5c801fb443d358886547bc079e0f857ffcd7","commit_message":"map6_s02: add 4 funcs\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":95.39038,"total_code":2876860,"matched_code":2744248,"matched_code_percent":95.39039,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6289,"matched_functions_percent":96.38314,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-25T06:34:42Z","commit_sha":"1e6ecace95775e5ff2093f6d71c82d1907956ada","commit_message":"Tidying pass, comments","measures":{"fuzzy_match_percent":95.30557,"total_code":2876860,"matched_code":2741808,"matched_code_percent":95.30557,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6285,"matched_functions_percent":96.32184,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-24T19:17:09Z","commit_sha":"acfff03f8c7a12ed6582c33b82f15ccd84e500e0","commit_message":"map5_s00: func_800D8DFC","measures":{"fuzzy_match_percent":95.30557,"total_code":2876860,"matched_code":2741808,"matched_code_percent":95.30557,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6285,"matched_functions_percent":96.32184,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-24T18:54:44Z","commit_sha":"f4a8b4a0d5e054ae0df0a0fa4916eb89e114ad1d","commit_message":"map6_s04: func_800DB748\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":95.296814,"total_code":2876860,"matched_code":2741556,"matched_code_percent":95.29682,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6284,"matched_functions_percent":96.30652,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-24T18:46:51Z","commit_sha":"b8f18af90dc1f59829308dc8c2f3bebe4381f4aa","commit_message":"map6_s04: func_800D99E4","measures":{"fuzzy_match_percent":95.289444,"total_code":2876860,"matched_code":2741344,"matched_code_percent":95.289444,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6283,"matched_functions_percent":96.29119,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-24T18:40:09Z","commit_sha":"1fb0a6e806c13d02cecaca8f44299fafea846f94","commit_message":"map7_s03: func_800DD868","measures":{"fuzzy_match_percent":95.28251,"total_code":2876860,"matched_code":2741144,"matched_code_percent":95.28249,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6282,"matched_functions_percent":96.27586,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-24T11:34:23Z","commit_sha":"1b639d5ad49c8ff63fd1d283e6243091d1ebd1b0","commit_message":"map5_s00: func_800CB25C","measures":{"fuzzy_match_percent":95.279015,"total_code":2876860,"matched_code":2741044,"matched_code_percent":95.27902,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6281,"matched_functions_percent":96.26054,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-24T11:04:00Z","commit_sha":"3e02dfc8a9b1c5054cc6cfa114114c729bb23258","commit_message":"`sharedFunc_800D2C18_5_s00`: demagicking","measures":{"fuzzy_match_percent":95.1828,"total_code":2876860,"matched_code":2738276,"matched_code_percent":95.18281,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6280,"matched_functions_percent":96.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T18:03:32Z","commit_sha":"342527b652b7e077e83a155203c7733e6ba09b09","commit_message":"Fixups","measures":{"fuzzy_match_percent":95.1828,"total_code":2876860,"matched_code":2738276,"matched_code_percent":95.18281,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6280,"matched_functions_percent":96.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T17:56:52Z","commit_sha":"fe2ff5549ffd295155e2d6067147487fe27ed52c","commit_message":"Formatting and demagicking","measures":{"fuzzy_match_percent":95.1828,"total_code":2876860,"matched_code":2738276,"matched_code_percent":95.18281,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6280,"matched_functions_percent":96.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T17:18:55Z","commit_sha":"a4c4a1b0debdac8e129fab956e5f6917b382a5f7","commit_message":"map4_s05: func_800D4A3C","measures":{"fuzzy_match_percent":95.1828,"total_code":2876860,"matched_code":2738276,"matched_code_percent":95.18281,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6280,"matched_functions_percent":96.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T15:48:09Z","commit_sha":"3615c653c527f4e6ef122c577f4f759551d85899","commit_message":"maps: sharedFunc_800D3300_5_s00","measures":{"fuzzy_match_percent":95.033745,"total_code":2876860,"matched_code":2733988,"matched_code_percent":95.03375,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6279,"matched_functions_percent":96.22989,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T13:13:06Z","commit_sha":"f1642589083f25493675f7d0cad1efaad1470e2a","commit_message":"maps: sharedFunc_800D2C18_5_s00","measures":{"fuzzy_match_percent":94.93615,"total_code":2876860,"matched_code":2731180,"matched_code_percent":94.93614,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6277,"matched_functions_percent":96.199234,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T12:14:26Z","commit_sha":"d9edec689ffe0bc08fffe4304505d0045d96ad9f","commit_message":"map4_s05: func_800D2B90","measures":{"fuzzy_match_percent":94.829636,"total_code":2876860,"matched_code":2728116,"matched_code_percent":94.82964,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6275,"matched_functions_percent":96.16859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T11:43:25Z","commit_sha":"42a046dfc2135156acf416376e424675e800e75f","commit_message":"add Ai_Floatstinger_ControlUpdate to syms","measures":{"fuzzy_match_percent":94.75359,"total_code":2876860,"matched_code":2725928,"matched_code_percent":94.753586,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6274,"matched_functions_percent":96.15326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T11:37:02Z","commit_sha":"3465b7ad6cda18e84de3bb4cb3a840562ed1f439","commit_message":"map4_s05: func_800D4458","measures":{"fuzzy_match_percent":94.75026,"total_code":2876860,"matched_code":2725832,"matched_code_percent":94.75025,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6273,"matched_functions_percent":96.13793,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-23T10:31:02Z","commit_sha":"ab955a5ed5b2b0f086ab0e5f34c0a0ddc15eb3f3","commit_message":"Hanged Scratcher func demagicking","measures":{"fuzzy_match_percent":94.71202,"total_code":2876860,"matched_code":2724732,"matched_code_percent":94.71201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6272,"matched_functions_percent":96.122604,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T18:09:23Z","commit_sha":"0c5cf0c5c248fe7db261fb268300aa5e03a55f9d","commit_message":"maps: sharedFunc_800D2844_5_s00","measures":{"fuzzy_match_percent":94.71202,"total_code":2876860,"matched_code":2724732,"matched_code_percent":94.71201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6272,"matched_functions_percent":96.122604,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T14:28:35Z","commit_sha":"f510b28406d9d8d7173b283152ede8f92bfba072","commit_message":"maps: sharedFunc_800D3214_5_s00","measures":{"fuzzy_match_percent":94.643875,"total_code":2876860,"matched_code":2722772,"matched_code_percent":94.64388,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6270,"matched_functions_percent":96.09196,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T13:10:58Z","commit_sha":"227168f1dd5d6e23d77d3e442c023d57a8a9b12e","commit_message":"Hanged Scratcher fixups","measures":{"fuzzy_match_percent":94.62441,"total_code":2876860,"matched_code":2722212,"matched_code_percent":94.62442,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6268,"matched_functions_percent":96.0613,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T12:58:37Z","commit_sha":"a3df47513eb681bee7cfe1c87ac43264befe9a27","commit_message":"maps: Ai_HangedScratcher_Control_7","measures":{"fuzzy_match_percent":94.62441,"total_code":2876860,"matched_code":2722212,"matched_code_percent":94.62442,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6268,"matched_functions_percent":96.0613,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T12:50:08Z","commit_sha":"1eee4ac6051a61482ec23791e6359975b943df83","commit_message":"Hanged Scratcher fixups","measures":{"fuzzy_match_percent":94.49594,"total_code":2876860,"matched_code":2718516,"matched_code_percent":94.49595,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6266,"matched_functions_percent":96.030655,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T12:12:31Z","commit_sha":"ef1e8da5c7b48aee4a4be1cc70e3cf9b632d42b6","commit_message":"maps: Ai_HangedScratcher_Control_3","measures":{"fuzzy_match_percent":94.49594,"total_code":2876860,"matched_code":2718516,"matched_code_percent":94.49595,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6266,"matched_functions_percent":96.030655,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T11:25:34Z","commit_sha":"d656e2932f1f28241e6436cec1b4f0b7c3e66c36","commit_message":"maps: Ai_HangedScratcher_Control_15","measures":{"fuzzy_match_percent":94.388596,"total_code":2876860,"matched_code":2715428,"matched_code_percent":94.3886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6264,"matched_functions_percent":96,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T11:10:32Z","commit_sha":"93f762eb8d032ccf26749f2e015c4567192f5cf4","commit_message":"maps: Ai_HangedScratcher_Control_4","measures":{"fuzzy_match_percent":94.33576,"total_code":2876860,"matched_code":2713908,"matched_code_percent":94.33577,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6262,"matched_functions_percent":95.96935,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T09:44:19Z","commit_sha":"ac642dcae1ba1830cd35d1d01eb737e0603f6565","commit_message":"map4_s03: func_800D88C8","measures":{"fuzzy_match_percent":94.265686,"total_code":2876860,"matched_code":2711892,"matched_code_percent":94.26569,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6259,"matched_functions_percent":95.92337,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T06:43:13Z","commit_sha":"4727df48fe0ca76909a12dbcc93955709ea5a922","commit_message":"Floatstinger demagicking","measures":{"fuzzy_match_percent":94.20369,"total_code":2876860,"matched_code":2710108,"matched_code_percent":94.20368,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6258,"matched_functions_percent":95.90804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T06:30:52Z","commit_sha":"89184decfee1d918fa3f0f7a3388182d90880d88","commit_message":"Hanged Scratcher cleanup","measures":{"fuzzy_match_percent":94.20702,"total_code":2876860,"matched_code":2710204,"matched_code_percent":94.207016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6259,"matched_functions_percent":95.92337,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T06:15:04Z","commit_sha":"c273f7fd613c8004e35cfb280577d111aeaf1237","commit_message":"Floatstinger cleanup","measures":{"fuzzy_match_percent":94.20702,"total_code":2876860,"matched_code":2710204,"matched_code_percent":94.207016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6259,"matched_functions_percent":95.92337,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T05:53:12Z","commit_sha":"acffabe7727f764d95a27116fd2927c48b346db7","commit_message":"Floatstinger cleanup, fix decl ordering","measures":{"fuzzy_match_percent":94.20702,"total_code":2876860,"matched_code":2710204,"matched_code_percent":94.207016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6259,"matched_functions_percent":95.92337,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T05:29:05Z","commit_sha":"0d68164a34f10a1e39b0395cecd6c235ad12d2a2","commit_message":"Floatstinger cleanup, demagicking","measures":{"fuzzy_match_percent":94.20702,"total_code":2876860,"matched_code":2710204,"matched_code_percent":94.207016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6259,"matched_functions_percent":95.92337,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-22T05:08:38Z","commit_sha":"cd7d32b8cedfb95d63d5e6418519bf5cc592aed7","commit_message":"`func_800D61AC`: hex removal","measures":{"fuzzy_match_percent":94.20702,"total_code":2876860,"matched_code":2710204,"matched_code_percent":94.207016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6259,"matched_functions_percent":95.92337,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T20:32:49Z","commit_sha":"159c8adf4481a32873d24965cd00d926f60720fc","commit_message":"map4_s05: func_800D61AC","measures":{"fuzzy_match_percent":94.20702,"total_code":2876860,"matched_code":2710204,"matched_code_percent":94.207016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6259,"matched_functions_percent":95.92337,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T20:21:13Z","commit_sha":"10585f099c1e0ec2c2d679c7ea4e36dc45aa01a3","commit_message":"maps: Ai_HangedScratcher_Control_14","measures":{"fuzzy_match_percent":94.15072,"total_code":2876860,"matched_code":2708584,"matched_code_percent":94.1507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6258,"matched_functions_percent":95.90804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T16:55:18Z","commit_sha":"f15ef279d0b63baf3a263094900ff52e6cbd0830","commit_message":"map4_s05: add 4 funcs","measures":{"fuzzy_match_percent":94.129585,"total_code":2876860,"matched_code":2707976,"matched_code_percent":94.12958,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6257,"matched_functions_percent":95.89272,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T16:53:43Z","commit_sha":"032de77a5de58c0158ad035644217cb25bd1222f","commit_message":"maps: Ai_HangedScratcher_Control_6","measures":{"fuzzy_match_percent":94.02627,"total_code":2876860,"matched_code":2705004,"matched_code_percent":94.02627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6253,"matched_functions_percent":95.83142,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T16:32:03Z","commit_sha":"227cb633ce8ee4b1e2b3e834a87df37f48b0fb6e","commit_message":"maps: Ai_HangedScratcher_Control_12","measures":{"fuzzy_match_percent":93.99539,"total_code":2876860,"matched_code":2704116,"matched_code_percent":93.9954,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6251,"matched_functions_percent":95.800766,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T16:25:03Z","commit_sha":"91d352d050a3ac52e7a91f25cb4de2ea2d54c9dd","commit_message":"maps: Ai_HangedScratcher_Control_13","measures":{"fuzzy_match_percent":93.96454,"total_code":2876860,"matched_code":2703228,"matched_code_percent":93.96453,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6249,"matched_functions_percent":95.77011,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T16:17:56Z","commit_sha":"7dfc79781f6b4558d2e5c0d75f8559f1339b05ff","commit_message":"maps: Ai_HangedScratcher_Control_9","measures":{"fuzzy_match_percent":93.94229,"total_code":2876860,"matched_code":2702588,"matched_code_percent":93.94228,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6247,"matched_functions_percent":95.73946,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T16:10:04Z","commit_sha":"e5913b63321785f89219cabb3bd9caa70c36a64a","commit_message":"math: TIMESTEP_SCALE_60FPS","measures":{"fuzzy_match_percent":93.92031,"total_code":2876860,"matched_code":2701956,"matched_code_percent":93.92031,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6245,"matched_functions_percent":95.70881,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T16:07:48Z","commit_sha":"0ba3b899200d990884cbfe4ee46d608fd2213aa6","commit_message":"maps: Ai_HangedScratcher_Control_8","measures":{"fuzzy_match_percent":93.92031,"total_code":2876860,"matched_code":2701956,"matched_code_percent":93.92031,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6245,"matched_functions_percent":95.70881,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T15:49:56Z","commit_sha":"19ef82656e27da6008c0bb65bf4389ae7c2f908a","commit_message":"maps: sharedFunc_800CFF74_5_s00\n\nCo-authored-by: HumanYeeeee <HumanYeeeee@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.900024,"total_code":2876860,"matched_code":2701372,"matched_code_percent":93.90002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6243,"matched_functions_percent":95.67816,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T14:07:52Z","commit_sha":"cf8c6cf625030966eef514b82e38d8dddccdb56f","commit_message":"maps: sharedFunc_800D26D8_5_s00","measures":{"fuzzy_match_percent":93.84385,"total_code":2876860,"matched_code":2699756,"matched_code_percent":93.84384,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6241,"matched_functions_percent":95.64751,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T13:22:55Z","commit_sha":"1d86b02feaac97732020774dfcd89644f5a3601f","commit_message":"map4_s05: add 3 funcs","measures":{"fuzzy_match_percent":93.818535,"total_code":2876860,"matched_code":2699028,"matched_code_percent":93.81854,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6239,"matched_functions_percent":95.61686,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T11:51:25Z","commit_sha":"afca8d5f1402356e2e6a72d9832ccbc670eab8b8","commit_message":"map6_s04: func_800E0204","measures":{"fuzzy_match_percent":93.78503,"total_code":2876860,"matched_code":2698064,"matched_code_percent":93.78503,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6236,"matched_functions_percent":95.57088,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T11:45:28Z","commit_sha":"d6cea3a43aeca05f3de123f0954e1432aedc0cae","commit_message":"map6_s04: func_800E0358\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.78503,"total_code":2876860,"matched_code":2698064,"matched_code_percent":93.78503,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6236,"matched_functions_percent":95.57088,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T09:17:23Z","commit_sha":"c9351eafeced440cd14e719f1006090eb48a1335","commit_message":"map6_s04: match 2 funcs","measures":{"fuzzy_match_percent":93.78127,"total_code":2876860,"matched_code":2697956,"matched_code_percent":93.78127,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6235,"matched_functions_percent":95.55556,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-21T06:05:01Z","commit_sha":"7ae8feabb334aa004d2e5e87e4bb18b9e0d27e7d","commit_message":"map6_s04: func_800E73B4","measures":{"fuzzy_match_percent":93.76069,"total_code":2876860,"matched_code":2697364,"matched_code_percent":93.7607,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6233,"matched_functions_percent":95.52491,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T14:07:34Z","commit_sha":"7a89efa7ade6562353ecc1c4dfa7709ac92a317c","commit_message":"map4_s05: func_800D3F84","measures":{"fuzzy_match_percent":93.751236,"total_code":2876860,"matched_code":2697092,"matched_code_percent":93.751236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6232,"matched_functions_percent":95.509575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T12:21:30Z","commit_sha":"ce87042f8c85c0830a10672c1b5cfcbb4c60a6b5","commit_message":"map4_s05: add 3 funcs","measures":{"fuzzy_match_percent":93.729706,"total_code":2876860,"matched_code":2696472,"matched_code_percent":93.72969,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6231,"matched_functions_percent":95.494255,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T07:27:55Z","commit_sha":"ad11b58cfa33a6eaf0591c8070c225376d79eb15","commit_message":"naming: s_WorldEnvWork, Player_FootstepSfxPlay/_DisableDamage/_IsBusy/_IsAttacking\n\nWorldEnv stuff looks separate to WorldGfx, renamed Gfx_FogXX to WorldEnv_FogXX","measures":{"fuzzy_match_percent":93.56812,"total_code":2876860,"matched_code":2691824,"matched_code_percent":93.56813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6228,"matched_functions_percent":95.44827,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T07:14:22Z","commit_sha":"27ba3d7ff24a4213bb08b34500ffea0a6f811dd5","commit_message":"Renames, comments","measures":{"fuzzy_match_percent":93.56812,"total_code":2876860,"matched_code":2691824,"matched_code_percent":93.56813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6228,"matched_functions_percent":95.44827,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T06:38:49Z","commit_sha":"b8a8d74f6d70aa77907c67aa447adca2ae5219fd","commit_message":"Identify ray tracing functions (#479)","measures":{"fuzzy_match_percent":93.56812,"total_code":2876860,"matched_code":2691824,"matched_code_percent":93.56813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6228,"matched_functions_percent":95.44827,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T06:33:30Z","commit_sha":"70bce3c46353b0ec90311dce7aab956f433a7096","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":93.56812,"total_code":2876860,"matched_code":2691824,"matched_code_percent":93.56813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6228,"matched_functions_percent":95.44827,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T05:16:42Z","commit_sha":"9669a459200a7abc27ab2f31f64d474adce79375","commit_message":"map7_s03: func_800D9114","measures":{"fuzzy_match_percent":93.56812,"total_code":2876860,"matched_code":2691824,"matched_code_percent":93.56813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6228,"matched_functions_percent":95.44827,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T04:20:18Z","commit_sha":"9f5149e541d0be646ce0f20aa2aa2b03bb92139e","commit_message":"map7_s03: func_800DD6CC","measures":{"fuzzy_match_percent":93.56452,"total_code":2876860,"matched_code":2691720,"matched_code_percent":93.564514,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6227,"matched_functions_percent":95.43295,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T04:11:50Z","commit_sha":"7508d43e5b03c70e5c0819c238569b901de33943","commit_message":"map6_s04: func_800DE8F0","measures":{"fuzzy_match_percent":93.56076,"total_code":2876860,"matched_code":2691612,"matched_code_percent":93.56075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6226,"matched_functions_percent":95.417625,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T04:06:25Z","commit_sha":"3fc30c4a7983d2d96fd31e4cb8f8721141841e0d","commit_message":"map7_s03: func_800DD2C8","measures":{"fuzzy_match_percent":93.55701,"total_code":2876860,"matched_code":2691504,"matched_code_percent":93.557,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6225,"matched_functions_percent":95.4023,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T04:03:16Z","commit_sha":"bd395a21e5b740bb988f8ade46bf790138297e9a","commit_message":"map7_s03: func_800E04C4","measures":{"fuzzy_match_percent":93.553535,"total_code":2876860,"matched_code":2691404,"matched_code_percent":93.55353,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6224,"matched_functions_percent":95.38698,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T03:59:08Z","commit_sha":"b0d5ca82f95d7b7544a42082ec7ac3aa679a2d3d","commit_message":"map7_s03: func_800DA4EC\n\nCo-authored-by: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>\nCo-authored-by: ser-pounce <ser-pounce@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.550064,"total_code":2876860,"matched_code":2691304,"matched_code_percent":93.55005,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6223,"matched_functions_percent":95.37164,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T03:54:05Z","commit_sha":"dd95c31314e9beb6f9dd495fd771c7f9d6f57862","commit_message":"map7_s03: func_800E2444","measures":{"fuzzy_match_percent":93.54657,"total_code":2876860,"matched_code":2691204,"matched_code_percent":93.54658,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6222,"matched_functions_percent":95.35632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-20T02:45:25Z","commit_sha":"159b132d537ebe4822a506fa6eb53f55b4e320cd","commit_message":"map7_s03: func_800E9C28","measures":{"fuzzy_match_percent":93.54339,"total_code":2876860,"matched_code":2691112,"matched_code_percent":93.54337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6221,"matched_functions_percent":95.340996,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-19T12:45:03Z","commit_sha":"6efa4ef78d1f9a732cad7f1fb7e4e3af07ecb70d","commit_message":"update Ai_Twinfeeler_Init","measures":{"fuzzy_match_percent":93.530304,"total_code":2876860,"matched_code":2690736,"matched_code_percent":93.53031,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6220,"matched_functions_percent":95.325676,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-19T11:07:07Z","commit_sha":"6fb81a773a571ac2d804917d3e163af1554b7916","commit_message":"map7_s03: match 4 funcs","measures":{"fuzzy_match_percent":93.530304,"total_code":2876860,"matched_code":2690736,"matched_code_percent":93.53031,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6220,"matched_functions_percent":95.325676,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-19T07:17:40Z","commit_sha":"b2bcdae8aeaf722e0dba92538537e02235662057","commit_message":"map7_s03: match 6 funcs","measures":{"fuzzy_match_percent":93.51849,"total_code":2876860,"matched_code":2690396,"matched_code_percent":93.518486,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6216,"matched_functions_percent":95.264366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-19T05:16:50Z","commit_sha":"5730a37a605a300be837c853620af0a874cbe595","commit_message":"map4_s03: func_800DA718\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.50542,"total_code":2876860,"matched_code":2690020,"matched_code_percent":93.50542,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6210,"matched_functions_percent":95.17241,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-19T03:56:51Z","commit_sha":"b0d20ae1b62ebe8c46c81d44e3fc9ca22ca53174","commit_message":"map4_s03: func_800DA3E0","measures":{"fuzzy_match_percent":93.50083,"total_code":2876860,"matched_code":2689888,"matched_code_percent":93.50083,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6209,"matched_functions_percent":95.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-18T10:56:20Z","commit_sha":"807a88568c6422092d3a7c1c604ba0e48d439940","commit_message":"map4_s03: add 6 funcs\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.4722,"total_code":2876860,"matched_code":2689064,"matched_code_percent":93.47219,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6208,"matched_functions_percent":95.14176,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-18T03:52:41Z","commit_sha":"fd1a82d04e8d1d283e23bb0aceddd8711b4dd2cf","commit_message":"map7_s01: func_800DCE20","measures":{"fuzzy_match_percent":93.42366,"total_code":2876860,"matched_code":2687668,"matched_code_percent":93.42367,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6202,"matched_functions_percent":95.04981,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-18T00:48:17Z","commit_sha":"52cda67d4019e02c5b28e409a623b1ad6884a008","commit_message":"map6_s04: func_800E0F28","measures":{"fuzzy_match_percent":93.377785,"total_code":2876860,"matched_code":2686348,"matched_code_percent":93.37778,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6201,"matched_functions_percent":95.03448,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-17T19:17:44Z","commit_sha":"6dcd1e0cdf5e2683d4ef5f25572e742895d5972e","commit_message":"map7_s03: func_800E94F4","measures":{"fuzzy_match_percent":93.37319,"total_code":2876860,"matched_code":2686216,"matched_code_percent":93.37319,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6200,"matched_functions_percent":95.01916,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-17T18:53:14Z","commit_sha":"15b0f1332ae163c4229bcb56e11e6a70de4cda73","commit_message":"map7_s03: func_800E94C0","measures":{"fuzzy_match_percent":93.371376,"total_code":2876860,"matched_code":2686164,"matched_code_percent":93.37138,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6199,"matched_functions_percent":95.00383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-17T14:55:02Z","commit_sha":"fded8af329c7bb32061bcc0ea0fa875fb6983191","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":93.369576,"total_code":2876860,"matched_code":2686112,"matched_code_percent":93.36958,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6198,"matched_functions_percent":94.98851,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-17T14:22:48Z","commit_sha":"5350d1f9952e91b33ad32c277f49ccb08c0f5b04","commit_message":"map4_s03: add 4 funcs\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.369576,"total_code":2876860,"matched_code":2686112,"matched_code_percent":93.36958,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6198,"matched_functions_percent":94.98851,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-17T13:13:49Z","commit_sha":"b903fc114a4d46d298e5c7ebe59a36e149c76eda","commit_message":"map4_s03: add 10 funcs\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.28198,"total_code":2876860,"matched_code":2683592,"matched_code_percent":93.281975,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6194,"matched_functions_percent":94.9272,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-17T11:47:41Z","commit_sha":"2ab2fea4eeb52384d54d20d076467206832f9c12","commit_message":"map4_s03: func_800D0FD4, func_800D1604\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.166435,"total_code":2876860,"matched_code":2680268,"matched_code_percent":93.16644,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6184,"matched_functions_percent":94.77395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-17T05:58:50Z","commit_sha":"20051a2fc3eeedb474c38de25a876ce6d5735864","commit_message":"Bodyprog: code segment recognition\n\nThis should leave a decently map of file splits in the engine at least","measures":{"fuzzy_match_percent":93.11444,"total_code":2876860,"matched_code":2678772,"matched_code_percent":93.11443,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6182,"matched_functions_percent":94.74329,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T23:53:44Z","commit_sha":"1001ec4cfa3324adb073108b76e3c5b28baa1274","commit_message":"map4/map6: match/share Map_RoomBgmInit","measures":{"fuzzy_match_percent":93.11444,"total_code":2876860,"matched_code":2678772,"matched_code_percent":93.11443,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6182,"matched_functions_percent":94.74329,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T23:25:54Z","commit_sha":"41aa56837464c142723391c9144d815cdf3ab43e","commit_message":"map3_s03: func_800D17F8\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.03838,"total_code":2876860,"matched_code":2676584,"matched_code_percent":93.03838,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6179,"matched_functions_percent":94.69732,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T13:31:31Z","commit_sha":"621967098459181fa61e788eacda4f71b68a531a","commit_message":"map5_s01: Map_RoomIdxGet\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":93.01725,"total_code":2876860,"matched_code":2675976,"matched_code_percent":93.01725,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6178,"matched_functions_percent":94.68199,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T13:26:13Z","commit_sha":"42cc57ac7b165fd7cc3c5eb3d9a0bcd456f6c6cb","commit_message":"map4_s03: add 10 funcs\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":92.99722,"total_code":2876860,"matched_code":2675400,"matched_code_percent":92.99723,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6177,"matched_functions_percent":94.666664,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T09:42:47Z","commit_sha":"fbe97f89426db234a6eff6b001dd880d7f844d2c","commit_message":"map6_s00: Map_RoomBgmInit\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.926735,"total_code":2876860,"matched_code":2673372,"matched_code_percent":92.926735,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6167,"matched_functions_percent":94.51341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T09:08:53Z","commit_sha":"2192ddcd70ddc9afef959d9a4e6e1b42987537a0","commit_message":"match: func_800D1D3C (#478)\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.90101,"total_code":2876860,"matched_code":2672632,"matched_code_percent":92.90101,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6166,"matched_functions_percent":94.498085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T07:58:59Z","commit_sha":"f45cc4f12effe273454aa9615bcd12b478e3b1ff","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":92.876816,"total_code":2876860,"matched_code":2671936,"matched_code_percent":92.876816,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6165,"matched_functions_percent":94.48276,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-16T05:47:36Z","commit_sha":"2ff786a5b5b385684647690463bec80e860eb4a0","commit_message":"Bodyprog: code segment recognition\n\nlikely inacurrate, but helps I guess","measures":{"fuzzy_match_percent":92.876816,"total_code":2876860,"matched_code":2671936,"matched_code_percent":92.876816,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6165,"matched_functions_percent":94.48276,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-15T16:30:09Z","commit_sha":"df818a89bedc7267bfe16e4325b20c6d5331f625","commit_message":"map4_s03: add 4 functions","measures":{"fuzzy_match_percent":92.876816,"total_code":2876860,"matched_code":2671936,"matched_code_percent":92.876816,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6165,"matched_functions_percent":94.48276,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T12:58:36Z","commit_sha":"845c68a3c132ceb1c3f02c02f4a81f4e167b7c48","commit_message":"map4_s03: add 6 functions\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":92.82871,"total_code":2876860,"matched_code":2670552,"matched_code_percent":92.82871,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6161,"matched_functions_percent":94.421455,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T10:38:35Z","commit_sha":"9ac8a9b2cb5c2dc06204b4b6537976356a8390cd","commit_message":"map4_s03: add 2 functions\n\nCo-authored-by: laura-a-n-n <laura@lauraann.dev>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.74973,"total_code":2876860,"matched_code":2668280,"matched_code_percent":92.74973,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6155,"matched_functions_percent":94.3295,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T10:24:53Z","commit_sha":"34359138c9a26858a43ea726b75d740d261d8820","commit_message":"map4_s03: func_800D2790","measures":{"fuzzy_match_percent":92.7464,"total_code":2876860,"matched_code":2668184,"matched_code_percent":92.74639,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6153,"matched_functions_percent":94.29885,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T09:14:50Z","commit_sha":"ea326b0298558886761cc57b26cbb7f77609fc3a","commit_message":"map4_s03: add 4 functions\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":92.69996,"total_code":2876860,"matched_code":2666848,"matched_code_percent":92.69996,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6152,"matched_functions_percent":94.28352,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T08:27:01Z","commit_sha":"bfd24d9d127351eadaa1c6797dacee2279a90ec9","commit_message":"map4_s03: add 2 functions","measures":{"fuzzy_match_percent":92.67423,"total_code":2876860,"matched_code":2666108,"matched_code_percent":92.67424,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6148,"matched_functions_percent":94.22222,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T05:14:43Z","commit_sha":"a362a86f6ef961a4aad8266ed8ddebe35ed89d15","commit_message":"Bodyprog: Code functionallity recognition","measures":{"fuzzy_match_percent":92.61862,"total_code":2876860,"matched_code":2664508,"matched_code_percent":92.61862,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6146,"matched_functions_percent":94.19157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T03:35:16Z","commit_sha":"f34628fa6b38625783218ada9cfdbe9f2db750c1","commit_message":"maps: sym fixup","measures":{"fuzzy_match_percent":92.61862,"total_code":2876860,"matched_code":2664508,"matched_code_percent":92.61862,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6146,"matched_functions_percent":94.19157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T03:13:43Z","commit_sha":"7427f4b5525b09b1155e045d3cf80838fca6869f","commit_message":"maps: name/partially share Map_RoomBgmInit\n\nnamed up to map7, some reason map7 funcs are duplicated, not sure which\nis the actual func yet\n\nlooks like the funcs around it are always bunched together in every map\nshould probably be merged to single .c:\n\n- sharedFunc_800D929C_0_s00\n- Map_RoomIdxGet\n- Map_RoomBgmInit\n- Gfx_LoadingScreen_StageString (empty/nullsub in most maps)\n\ntricky to merge though since Map_RoomBgmInit changes a lot between maps\nsome maps have it as a single func, and some split it to two different funcs\ndepending on arg0 value\n\nand then map7 has those weird duplicate versions in-between each func too\nlikely be ifdef hell ;_;","measures":{"fuzzy_match_percent":92.6075,"total_code":2876860,"matched_code":2664188,"matched_code_percent":92.6075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6141,"matched_functions_percent":94.114944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T02:25:56Z","commit_sha":"81ba88b686aa6cdd547b9bfc4036f7e8e16fac40","commit_message":"maps: add some missing decls","measures":{"fuzzy_match_percent":92.61862,"total_code":2876860,"matched_code":2664508,"matched_code_percent":92.61862,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6146,"matched_functions_percent":94.19157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-15T00:03:30Z","commit_sha":"db7868b7dad91df201bb8fa5e4948ec877b9cbb0","commit_message":"maps: match 3 funcs","measures":{"fuzzy_match_percent":92.61862,"total_code":2876860,"matched_code":2664508,"matched_code_percent":92.61862,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6146,"matched_functions_percent":94.19157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T23:12:43Z","commit_sha":"3c146f5cff6adf57ffe5fe209ef28cc805e34216","commit_message":"map6_s04: match 2 funcs\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.61181,"total_code":2876860,"matched_code":2664312,"matched_code_percent":92.61181,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6143,"matched_functions_percent":94.1456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T22:52:11Z","commit_sha":"3bd0b2ddae90b2e10291708f62cf9f13356666f4","commit_message":"bodyprog: player properties fixup","measures":{"fuzzy_match_percent":92.60875,"total_code":2876860,"matched_code":2664224,"matched_code_percent":92.60875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6141,"matched_functions_percent":94.114944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T17:05:18Z","commit_sha":"4477e4d7cdbd096a05612d48a8e684f0f735120c","commit_message":"map4_s03: add 3 functions","measures":{"fuzzy_match_percent":92.60875,"total_code":2876860,"matched_code":2664224,"matched_code_percent":92.60875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6141,"matched_functions_percent":94.114944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T13:26:38Z","commit_sha":"fd6464af1a472a42a2f6eff27ce5e19929a572bf","commit_message":"maps: fixup m2ctx issue","measures":{"fuzzy_match_percent":92.58887,"total_code":2876860,"matched_code":2663652,"matched_code_percent":92.58887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6138,"matched_functions_percent":94.06897,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T13:09:52Z","commit_sha":"b7640d7b138d5910ffc4e2b8e6cbc95a8197c6b5","commit_message":"maps: add some missing func decls, find_missing_decls.py\n\na lot more missing decls though, added tool to help find them\n  tools/find_missing_decls.py > missing_decls.txt\n\n(kinda slow since it has to run m2ctx.py for each .c)","measures":{"fuzzy_match_percent":92.58887,"total_code":2876860,"matched_code":2663652,"matched_code_percent":92.58887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6138,"matched_functions_percent":94.06897,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T13:07:44Z","commit_sha":"fd95436ba0bcab72d5dfc0582af2a785e1a51227","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":92.58887,"total_code":2876860,"matched_code":2663652,"matched_code_percent":92.58887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6138,"matched_functions_percent":94.06897,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T12:20:52Z","commit_sha":"fb968092ffd5a786e8de3c6798fff0ea354ee3a4","commit_message":"map4_s03: func_800D1C48","measures":{"fuzzy_match_percent":92.58887,"total_code":2876860,"matched_code":2663652,"matched_code_percent":92.58887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6138,"matched_functions_percent":94.06897,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T12:07:53Z","commit_sha":"087142edb804656bac38856836f724a106e90568","commit_message":"map4_s03: func_800D1AFC\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":92.58038,"total_code":2876860,"matched_code":2663408,"matched_code_percent":92.58038,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6137,"matched_functions_percent":94.053635,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T12:02:35Z","commit_sha":"a4c8f7a47db195f71a06b8363c28ca683187f1f9","commit_message":"map4_s03: func_800D19F0","measures":{"fuzzy_match_percent":92.56884,"total_code":2876860,"matched_code":2663076,"matched_code_percent":92.56885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6136,"matched_functions_percent":94.038315,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T11:59:46Z","commit_sha":"8f65105460a62bcbecc2e9fb467e8740cdd8247c","commit_message":"map4_s03: func_800D3528 func_800D49C0`","measures":{"fuzzy_match_percent":92.559525,"total_code":2876860,"matched_code":2662808,"matched_code_percent":92.559525,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6135,"matched_functions_percent":94.02299,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T11:49:00Z","commit_sha":"56fb34afe93f3a969772bb4e6a53f4ede4ece13e","commit_message":"map7_s03: match 2 funcs, update bodyprog syms\n\nadded type:func to funcs for ghidra script (script should probably just assume\nany sym in .text is func, hm)\n\nadded m2ctx fix in gpu.h","measures":{"fuzzy_match_percent":92.554245,"total_code":2876860,"matched_code":2662656,"matched_code_percent":92.554245,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6133,"matched_functions_percent":93.99233,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T11:14:56Z","commit_sha":"8636d207db5a2b7b3161729fba79e5eb513e67d8","commit_message":"bodyprog: add Fs_CharaAnimBoneInfoUpdate sym","measures":{"fuzzy_match_percent":92.54103,"total_code":2876860,"matched_code":2662276,"matched_code_percent":92.54103,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6131,"matched_functions_percent":93.961685,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T10:49:34Z","commit_sha":"72eaf5e067710e4f0b0a3de077a0a6c7a29eb688","commit_message":"map4_s03: func_800D17FC, func_800D185C, func_800D1900\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.53311,"total_code":2876860,"matched_code":2662048,"matched_code_percent":92.53311,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6130,"matched_functions_percent":93.946365,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T05:58:04Z","commit_sha":"8ae1496a749ada0640db4dea33a29a5dbca59e4f","commit_message":"Code functionallity recognition","measures":{"fuzzy_match_percent":92.51809,"total_code":2876860,"matched_code":2661616,"matched_code_percent":92.51809,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6127,"matched_functions_percent":93.90038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-14T03:44:19Z","commit_sha":"df1b91b215bc94ddb9ef0708bcfdac4c640c25f3","commit_message":"Bodyprog: Code functionallity recognition","measures":{"fuzzy_match_percent":92.51809,"total_code":2876860,"matched_code":2661616,"matched_code_percent":92.51809,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6127,"matched_functions_percent":93.90038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T16:06:43Z","commit_sha":"90e5f2664b9e686f5b9355b9f68383538d644da0","commit_message":"map4_s03: func_800D0840","measures":{"fuzzy_match_percent":92.52602,"total_code":2876860,"matched_code":2661844,"matched_code_percent":92.52602,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6128,"matched_functions_percent":93.91571,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T14:24:25Z","commit_sha":"320ed2ed1ec52ffa3bd67fe3115fefc365789b40","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":92.48987,"total_code":2876860,"matched_code":2660804,"matched_code_percent":92.48987,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6127,"matched_functions_percent":93.90038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T11:21:35Z","commit_sha":"a2e93350cc7eaf61be858f5b2fd3248f4b0b75ba","commit_message":"map4_s03: func_800D078C\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.48987,"total_code":2876860,"matched_code":2660804,"matched_code_percent":92.48987,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6127,"matched_functions_percent":93.90038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T10:59:42Z","commit_sha":"753862d520521dd2849854bb8209bbc02bd9d67c","commit_message":"maps: sharedFunc_800CC004_4_s03","measures":{"fuzzy_match_percent":92.48361,"total_code":2876860,"matched_code":2660624,"matched_code_percent":92.48361,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6126,"matched_functions_percent":93.885056,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T09:36:29Z","commit_sha":"7a16522ccf761be423388d909154b8b476de2304","commit_message":"maps: sharedFunc_800CB1B0_4_s03, sharedFunc_800CBE54_4_s03","measures":{"fuzzy_match_percent":92.35931,"total_code":2876860,"matched_code":2657048,"matched_code_percent":92.359314,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6124,"matched_functions_percent":93.8544,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T09:25:45Z","commit_sha":"cd8e6402b9719e5bf055944431493bd2346ab72d","commit_message":"map7_s03: match 2 funcs","measures":{"fuzzy_match_percent":92.10431,"total_code":2876860,"matched_code":2649712,"matched_code_percent":92.10431,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6120,"matched_functions_percent":93.793106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T07:48:36Z","commit_sha":"4d44b51730b2513442ba2596879ce6dc70d3c2a5","commit_message":"map7_s03: func_800DD090","measures":{"fuzzy_match_percent":92.085396,"total_code":2876860,"matched_code":2649168,"matched_code_percent":92.085396,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6118,"matched_functions_percent":93.76245,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T07:35:44Z","commit_sha":"ca9363d57f9a8e885413f8baaaca49451f3c33e5","commit_message":"map7_s03: func_800D905C","measures":{"fuzzy_match_percent":92.0822,"total_code":2876860,"matched_code":2649076,"matched_code_percent":92.0822,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6117,"matched_functions_percent":93.74712,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T06:35:33Z","commit_sha":"342ddb79b29dff929c24ea0230a8eac68ce8c175","commit_message":"maps: match 4 funcs\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.078445,"total_code":2876860,"matched_code":2648968,"matched_code_percent":92.078445,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6116,"matched_functions_percent":93.731804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T05:27:02Z","commit_sha":"e94d544937811a9bea8e418bc6f8da24ba86c32f","commit_message":"Tidying pass, fix formatting","measures":{"fuzzy_match_percent":92.06969,"total_code":2876860,"matched_code":2648716,"matched_code_percent":92.06969,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6112,"matched_functions_percent":93.6705,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T01:30:05Z","commit_sha":"48c63fdc157bd50d5dd4c58ea05cbfca7637f2cd","commit_message":"map4_s03: match 7 funcs\n\nCo-authored-by: KieronJ <KieronJ@users.noreply.github.com>","measures":{"fuzzy_match_percent":92.06969,"total_code":2876860,"matched_code":2648716,"matched_code_percent":92.06969,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6112,"matched_functions_percent":93.6705,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-13T00:37:04Z","commit_sha":"bb0857f09698400910f28fb18eba9b905903888e","commit_message":"maps: @hack fixups","measures":{"fuzzy_match_percent":92.02061,"total_code":2876860,"matched_code":2647304,"matched_code_percent":92.02061,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6105,"matched_functions_percent":93.56322,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T15:40:36Z","commit_sha":"6ba296d6b5b025f44d8ac553b9fc9d9a4e6fd047","commit_message":"maps3_05: func_800D64E0","measures":{"fuzzy_match_percent":92.02061,"total_code":2876860,"matched_code":2647304,"matched_code_percent":92.02061,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6105,"matched_functions_percent":93.56322,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T14:16:44Z","commit_sha":"4519375e1dd2cac0a6453d8613bd23c1b0ac16cc","commit_message":"map3_s05: func_800D59D4","measures":{"fuzzy_match_percent":91.95985,"total_code":2876860,"matched_code":2645556,"matched_code_percent":91.95985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6104,"matched_functions_percent":93.54789,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T14:11:45Z","commit_sha":"17b77e518f72b34cccc637f313a5ae612ef36249","commit_message":"map3_s05: func_800D57E8","measures":{"fuzzy_match_percent":91.95303,"total_code":2876860,"matched_code":2645360,"matched_code_percent":91.95303,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6103,"matched_functions_percent":93.53257,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T14:05:25Z","commit_sha":"b64adcecbad4e05caabf121cf177a13bb5d75f1d","commit_message":"map3_s04: func_800D250C","measures":{"fuzzy_match_percent":91.94664,"total_code":2876860,"matched_code":2645176,"matched_code_percent":91.94664,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6102,"matched_functions_percent":93.51724,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T13:59:56Z","commit_sha":"c111ecbb07573d58bcc1035d196913f29e572d2c","commit_message":"map3_s04: func_800D21C4","measures":{"fuzzy_match_percent":91.93983,"total_code":2876860,"matched_code":2644980,"matched_code_percent":91.93983,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6101,"matched_functions_percent":93.501915,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T13:23:55Z","commit_sha":"bd48abdc9e6ddff71be4f71fa8c67bc799937ee2","commit_message":"maps: sharedFunc_800D15F0_3_s01\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":91.916046,"total_code":2876860,"matched_code":2644296,"matched_code_percent":91.916046,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6100,"matched_functions_percent":93.48659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T09:07:46Z","commit_sha":"f68a02789724a3d39e4b6917feeccbfe672a464e","commit_message":"Name function pointer field","measures":{"fuzzy_match_percent":91.43886,"total_code":2876860,"matched_code":2630568,"matched_code_percent":91.43886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6096,"matched_functions_percent":93.425285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T09:00:40Z","commit_sha":"658e4d4b424d4e6b06ababee57bf0ad68732b7b1","commit_message":"Name functions and fields","measures":{"fuzzy_match_percent":91.43886,"total_code":2876860,"matched_code":2630568,"matched_code_percent":91.43886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6096,"matched_functions_percent":93.425285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T06:57:32Z","commit_sha":"a6373dcc0a7979f1f3cf8481c046a71c3d4919f5","commit_message":"name field, minor fixups","measures":{"fuzzy_match_percent":91.43886,"total_code":2876860,"matched_code":2630568,"matched_code_percent":91.43886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6096,"matched_functions_percent":93.425285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T06:50:28Z","commit_sha":"4075212e445224b48bc68bb2ec3bb2ed580d7fd8","commit_message":"Tidying pass, demagicking","measures":{"fuzzy_match_percent":91.43886,"total_code":2876860,"matched_code":2630568,"matched_code_percent":91.43886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6096,"matched_functions_percent":93.425285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T06:27:45Z","commit_sha":"2b79b5821a8369080699a656b67ebc6c15b7ca08","commit_message":"Tidying pass, name fields","measures":{"fuzzy_match_percent":91.43886,"total_code":2876860,"matched_code":2630568,"matched_code_percent":91.43886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6096,"matched_functions_percent":93.425285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T06:00:13Z","commit_sha":"3123ebd14c502a3881e7ca471c9ef6ac54e392df","commit_message":"minor regression fix\n\nsrry","measures":{"fuzzy_match_percent":91.43886,"total_code":2876860,"matched_code":2630568,"matched_code_percent":91.43886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6096,"matched_functions_percent":93.425285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-12T05:50:15Z","commit_sha":"4c220c0eb9f88f3b6633dc475196992a9204e3d2","commit_message":"Code functionallity recognition\n\nWe need to give a revamp of names onces everything is fully map out there is a lot of arbitrary or inconsistent system naming","measures":{"fuzzy_match_percent":91.43469,"total_code":2876860,"matched_code":2630448,"matched_code_percent":91.434685,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6095,"matched_functions_percent":93.40996,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-11T16:43:02Z","commit_sha":"74861c7b78e7dc6cde5d5a3277aadbe7ddcc5633","commit_message":"fix bodyprog symbols","measures":{"fuzzy_match_percent":91.43886,"total_code":2876860,"matched_code":2630568,"matched_code_percent":91.43886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6096,"matched_functions_percent":93.425285,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-11T16:22:44Z","commit_sha":"1b29f5a85bd9f36045016c953d13e1d50aea5351","commit_message":"map3_s03: func_800D1A58","measures":{"fuzzy_match_percent":91.417725,"total_code":2876860,"matched_code":2629960,"matched_code_percent":91.417725,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6093,"matched_functions_percent":93.37931,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-11T12:00:26Z","commit_sha":"b87a5ab56a9faffed80f07f981b896f624ae6ab5","commit_message":"maps: sharedFunc_800D03E4_3_s03, sharedFunc_800CF600_3_s03","measures":{"fuzzy_match_percent":91.30677,"total_code":2876860,"matched_code":2626768,"matched_code_percent":91.30677,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6092,"matched_functions_percent":93.36398,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-11T06:34:44Z","commit_sha":"9b9d6f8a3f3741b19caebd3d46c11b69620b9b1b","commit_message":"Code functionallity recognition\n\nShouldn't rush the commit, but I want to sleep","measures":{"fuzzy_match_percent":91.13825,"total_code":2876860,"matched_code":2621920,"matched_code_percent":91.13825,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6084,"matched_functions_percent":93.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-11T02:44:57Z","commit_sha":"d79d21d149f7a5a8466eb06be484b8504959cd8c","commit_message":"\"Render\" ->\"Draw\" to enforce previous naming convention","measures":{"fuzzy_match_percent":91.159386,"total_code":2876860,"matched_code":2622528,"matched_code_percent":91.15939,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6087,"matched_functions_percent":93.28735,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-11T02:16:01Z","commit_sha":"e22e3654dd009719616199e5abc295c0fd7e444f","commit_message":"Fixups","measures":{"fuzzy_match_percent":91.159386,"total_code":2876860,"matched_code":2622528,"matched_code_percent":91.15939,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6087,"matched_functions_percent":93.28735,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T22:01:52Z","commit_sha":"72d85001f91494ca5efbf4c69044fba57a303431","commit_message":"map6_s00: func_800EC4B4","measures":{"fuzzy_match_percent":91.159386,"total_code":2876860,"matched_code":2622528,"matched_code_percent":91.15939,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6087,"matched_functions_percent":93.28735,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T15:57:13Z","commit_sha":"c8cb202bd54e2269940f23cb17354f877a3b5ed3","commit_message":"particle: naming","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T15:19:03Z","commit_sha":"25904971fed13f21b9c7971fd25f38b90e2d6a55","commit_message":"particle: naming","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T15:01:27Z","commit_sha":"1382a6c333cfeea88e7e47faed7e083e76f29053","commit_message":"Name local vars, demagicking","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T14:17:53Z","commit_sha":"e4d200f2106d2959eb8a6c48c02bbe4cc0c5f423","commit_message":"particle: fixup","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T13:16:06Z","commit_sha":"8f8846ea7c10f698541f2fc4b158b82e665159ab","commit_message":"particle: merge other particle funcs","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T12:18:05Z","commit_sha":"9c0246d7edba2053c5ce48ad3348d2aa296eb4af","commit_message":"particle: fixups","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T12:06:11Z","commit_sha":"aa13778b242d7bfc199d2c2bf40d53592f3f933a","commit_message":"particle: merge sharedFuncs to particle.c (incomplete)\n\nstill a lot more funcs to go","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T10:16:46Z","commit_sha":"0b283821b75e3f47f27a746684c0dee4724fef2e","commit_message":"map5_s01: add 2 functions","measures":{"fuzzy_match_percent":91.03397,"total_code":2876860,"matched_code":2618920,"matched_code_percent":91.03397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6086,"matched_functions_percent":93.27203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T09:23:17Z","commit_sha":"ed8c681b5f6095bc4ccb01e4461ba8a5dcdf8b68","commit_message":"m2ctx: use VER_USA define","measures":{"fuzzy_match_percent":90.98795,"total_code":2876860,"matched_code":2617596,"matched_code_percent":90.98795,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6084,"matched_functions_percent":93.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T03:50:50Z","commit_sha":"c11b120259755846a5e174a7628eae181ffd49eb","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":90.98795,"total_code":2876860,"matched_code":2617596,"matched_code_percent":90.98795,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6084,"matched_functions_percent":93.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-10T03:38:47Z","commit_sha":"e3422bc543b92bcc0b90c3527549ce23c3c88ce0","commit_message":"version: gate debug code behind VERSION_DATE, fixup FS_FILE_COUNT","measures":{"fuzzy_match_percent":90.98795,"total_code":2876860,"matched_code":2617596,"matched_code_percent":90.98795,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6084,"matched_functions_percent":93.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T18:48:59Z","commit_sha":"d069c6465f924a02ba496b8d0d01769cd741a56a","commit_message":"map5_s01: add 6 functions","measures":{"fuzzy_match_percent":90.98795,"total_code":2876860,"matched_code":2617596,"matched_code_percent":90.98795,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6084,"matched_functions_percent":93.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T12:36:25Z","commit_sha":"f10d2f88b24792dd472179c25947ea5a3cca64b4","commit_message":"JAP0: run prebuild on main exe","measures":{"fuzzy_match_percent":90.86949,"total_code":2876860,"matched_code":2614188,"matched_code_percent":90.86949,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6078,"matched_functions_percent":93.14942,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T12:33:53Z","commit_sha":"c8a4c2a89cf3ea28166cbf6d288575c5926501f3","commit_message":"JAP0: match main executable","measures":{"fuzzy_match_percent":90.86949,"total_code":2876860,"matched_code":2614188,"matched_code_percent":90.86949,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6078,"matched_functions_percent":93.14942,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T11:49:00Z","commit_sha":"d1029a85ddcc8aa0c15d8e3d0799b1491428d39c","commit_message":"JAP0: add bodyprog rodata splits","measures":{"fuzzy_match_percent":90.86949,"total_code":2876860,"matched_code":2614188,"matched_code_percent":90.86949,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6078,"matched_functions_percent":93.14942,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T10:08:34Z","commit_sha":"c13bac962be1e4840342c1972455b9212ca5a403","commit_message":"Maps: Air Screamer control func name fixups","measures":{"fuzzy_match_percent":90.86949,"total_code":2876860,"matched_code":2614188,"matched_code_percent":90.86949,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6078,"matched_functions_percent":93.14942,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T10:03:53Z","commit_sha":"2d8fe6f2f092c8bec94dfad958e190f5a01ed389","commit_message":"game: add version.h header to set region/revision","measures":{"fuzzy_match_percent":90.86949,"total_code":2876860,"matched_code":2614188,"matched_code_percent":90.86949,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6078,"matched_functions_percent":93.14942,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T07:19:52Z","commit_sha":"1a4b9e9ea8b0cf2598e9ebc2de917dc3d7ba0c69","commit_message":"map5_s01: func_800CD20C","measures":{"fuzzy_match_percent":90.86949,"total_code":2876860,"matched_code":2614188,"matched_code_percent":90.86949,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6078,"matched_functions_percent":93.14942,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T07:15:55Z","commit_sha":"8a268d99d10bd479b4b5d6c94a0ed5afea7885b1","commit_message":"JAP0: setup bodyprog asm splits\n\nshould mostly be correct but probably a couple off\n\nwonder how we can handle rodata/data sections though, guess we might\nneed to match all our INCLUDE_RODATA stuff first?","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T06:47:14Z","commit_sha":"dc0543b289d82ad465992e6c3a8612a8f9aef678","commit_message":"Code functionallity recognition","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T04:53:58Z","commit_sha":"4bd475351d565796d0f6619b0bf4f9ec906b02b9","commit_message":"Maps: Romper character func demagicking","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T02:54:05Z","commit_sha":"0acc93a585010cdf1b5eca4b5555368c16af036d","commit_message":"Tidying pass, Groaner character func demagicking","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-09T01:53:46Z","commit_sha":"887678bf1c5312344b59f2f3c9c43c41714c0daa","commit_message":"bodyprog: minor fixups","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T23:53:57Z","commit_sha":"6bcb2bc43bed7e1f67b291e6377a69f30d12a5ab","commit_message":"s_func_8006F8FC deobfuscation\n\nSeems collision related, maybe to get Y coord for different areas, only\nseen that used by AirScreamer so far though.\n\n(there is an earlier unk_84C block in map header which looks similar to\nthis, seems to use same endOfArray bit at least, but haven't seen anywhere\nthat reads that yet)","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T23:32:17Z","commit_sha":"77f66db47deef2616b43fa7718cc70a64f548a79","commit_message":"bodyprog: func_80040004 fix, add `s_LinkedBone`, `field_D2C` to overlayheader\n\nThe s_Bone in s_HeldItem is only ever passed to `Bone_ModelAssign`, which doesn't make use of next_14.\nOther code writes a different kind of ptr to where next_14 would be, so best guess is that the s_HeldItem bone is some smaller one without next_14 ptr.\nAdded s_LinkedBone and moved next_14 there, seems to let it fit now, but not sure if all s_Bone refs have been updated to it properly","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T22:19:40Z","commit_sha":"7b62cffb962d67645de387b83702fff5c245cb1d","commit_message":"groaner: properties fixups","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T22:00:18Z","commit_sha":"d3b7f2744be255e7b7f70e002daf9c681c5183d8","commit_message":"air_screamer: properties fixups","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T21:17:48Z","commit_sha":"87cfbf717e41df9b730e8421da0d8f6ad7b407ed","commit_message":"game: add `Character_HasFlag` to remove `s_PlayerWork` temps","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T21:06:12Z","commit_sha":"75226e6177540e104b90926698a8c81d7c2c0674","commit_message":"maps: merge Romper/Groaner funcs to romper.c/groaner.c\n\nTODO: some groaner funcs still using `groaner->properties_E4.player` /\n`groaner->properties_E4.dummy` instead of groanerProps","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T20:47:47Z","commit_sha":"960849ff2ed7cd4b9df6462303f7d096cb059d4f","commit_message":"maps: comment fixups","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T20:41:12Z","commit_sha":"4e47b5ecd7daa67cef9bf5dbfaac089b0df01453","commit_message":"maps: merge AirScreamer funcs to air_screamer.c\n\nTODO: move func decls from shared.h to air_screamer.h\nAlso some odd s_PlayerWork* locals here which might be removable if we\ncall an inline?","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T20:12:01Z","commit_sha":"4a94d6c826d6eb3e04fe0bbd07587a73a9f7863f","commit_message":"maps: merge AirScreamerControl funcs to air_screamer.c","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T19:47:09Z","commit_sha":"923e5eb0b24b04c74853e5775a1d0386ec12ef34","commit_message":"map0_s01: name AirScreamerControl funcs","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T19:35:40Z","commit_sha":"bb00e83e82eddacb38ecab09c3af3f42fa1e48a3","commit_message":"maps: name Ai_AirScreamerControl_46 onwards\n\nprep for merge","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T18:42:11Z","commit_sha":"da031d4ee750ce199258f2d4106ce6a246c5a1a4","commit_message":"map0_s01: share Ai_AirScreamerControl_2\n\nguessing most of the empty funcs under this are the other\nAi_AirScreamerControl_* funcs, probably empty since this code is\njust for the dumb cafe bird who likes flying into windows\n\nwill need to check the control funcs array that point to these funcs in\norder to match them up","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T17:53:56Z","commit_sha":"f130d3c325bab1e7c1bc6b26417440527038ae57","commit_message":"maps: sharedFunc_800E384C_2_s00\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":90.84224,"total_code":2876860,"matched_code":2613404,"matched_code_percent":90.84223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6077,"matched_functions_percent":93.1341,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T15:03:05Z","commit_sha":"9d3381e6fdee8bbed5ee057a417f06ba10fbbf5e","commit_message":"map4_s02: func_800E9F34","measures":{"fuzzy_match_percent":90.773415,"total_code":2876860,"matched_code":2611424,"matched_code_percent":90.773415,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6072,"matched_functions_percent":93.05747,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T14:56:39Z","commit_sha":"016633c908373a23a2b6e7aabcc914f52c854806","commit_message":"Maps: name Romper character control funcs","measures":{"fuzzy_match_percent":90.748245,"total_code":2876860,"matched_code":2610700,"matched_code_percent":90.748245,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6071,"matched_functions_percent":93.042145,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T14:07:08Z","commit_sha":"f8188887002bfed2487c0877c888c3ebbe345cc7","commit_message":"maps: sharedFunc_800E8DFC_2_s02","measures":{"fuzzy_match_percent":90.748245,"total_code":2876860,"matched_code":2610700,"matched_code_percent":90.748245,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6071,"matched_functions_percent":93.042145,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T12:57:42Z","commit_sha":"f6f2bd310468e42812ea478d8211bfae0dfe7b52","commit_message":"maps: sharedFunc_800E8A40_2_s02","measures":{"fuzzy_match_percent":90.54803,"total_code":2876860,"matched_code":2604940,"matched_code_percent":90.54803,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6067,"matched_functions_percent":92.98084,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T12:20:49Z","commit_sha":"74cf37d4277572e272a4c1e72cfa267751cd0f35","commit_message":"maps: sharedFunc_800E8730_2_s02","measures":{"fuzzy_match_percent":90.41511,"total_code":2876860,"matched_code":2601116,"matched_code_percent":90.41511,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6063,"matched_functions_percent":92.91954,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T10:49:37Z","commit_sha":"1a6a2be1ff99fe3d7877f268ca247bb58d3c1a41","commit_message":"maps: sharedFunc_800E8480_2_s02","measures":{"fuzzy_match_percent":90.3061,"total_code":2876860,"matched_code":2597980,"matched_code_percent":90.3061,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6059,"matched_functions_percent":92.85824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T09:50:16Z","commit_sha":"f433089d956b59358c83afdd8c9a23497009981a","commit_message":"maps: sharedFunc_800E8158_2_s02","measures":{"fuzzy_match_percent":90.22601,"total_code":2876860,"matched_code":2595676,"matched_code_percent":90.22601,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6055,"matched_functions_percent":92.796936,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T09:26:27Z","commit_sha":"b196edaabfa60ff96c2fbbedf115812c2f213031","commit_message":"maps: sharedFunc_800E803C_2_s02","measures":{"fuzzy_match_percent":90.13758,"total_code":2876860,"matched_code":2593132,"matched_code_percent":90.13758,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6051,"matched_functions_percent":92.735634,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T09:02:14Z","commit_sha":"bd5eebe0c17353c97028cc750fb47d8c53982d65","commit_message":"maps: sharedFunc_800E79D8_2_s02","measures":{"fuzzy_match_percent":90.09809,"total_code":2876860,"matched_code":2591996,"matched_code_percent":90.0981,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6047,"matched_functions_percent":92.674324,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-08T08:53:46Z","commit_sha":"217304c0a9884de8362a022634e0d63d6236d64b","commit_message":"maps: sharedFunc_800E9714_2_s02","measures":{"fuzzy_match_percent":89.87062,"total_code":2876860,"matched_code":2585452,"matched_code_percent":89.87063,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6043,"matched_functions_percent":92.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T19:43:23Z","commit_sha":"aa4b64bffa7104155df959a999160c596b986a73","commit_message":"maps: sharedFunc_800E7540_2_s02","measures":{"fuzzy_match_percent":89.7961,"total_code":2876860,"matched_code":2583308,"matched_code_percent":89.7961,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6039,"matched_functions_percent":92.55173,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T17:11:53Z","commit_sha":"d12118f1a3440b043fe26dabe4f752924e13b487","commit_message":"maps: sharedFunc_800E6C40_2_s02","measures":{"fuzzy_match_percent":89.63258,"total_code":2876860,"matched_code":2578604,"matched_code_percent":89.63258,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6035,"matched_functions_percent":92.490425,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T17:03:09Z","commit_sha":"73717ac00a043fbaf05bfe14bddd6855e0d55ae5","commit_message":"maps: sharedFunc_800E94B4_2_s02","measures":{"fuzzy_match_percent":89.31223,"total_code":2876860,"matched_code":2569388,"matched_code_percent":89.31224,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6031,"matched_functions_percent":92.42912,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T14:42:47Z","commit_sha":"f9a89c86e718962d20240ed3d03b3a9ed19343c6","commit_message":"Animation: add doc comments","measures":{"fuzzy_match_percent":89.2277,"total_code":2876860,"matched_code":2566956,"matched_code_percent":89.2277,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6027,"matched_functions_percent":92.36781,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T13:18:40Z","commit_sha":"8189f28731a90529163ddafb9f117178d4e72266","commit_message":"Maps: `sharedFunc_800E6878_2_s02` -> `Ai_Romper_Control_2`","measures":{"fuzzy_match_percent":89.2277,"total_code":2876860,"matched_code":2566956,"matched_code_percent":89.2277,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6027,"matched_functions_percent":92.36781,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T12:19:26Z","commit_sha":"de0fd11d1f026c312e61d31551d507b04cd3b097","commit_message":"Maps: name shared Romper character  control funcs, deobfuscation","measures":{"fuzzy_match_percent":89.2277,"total_code":2876860,"matched_code":2566956,"matched_code_percent":89.2277,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6027,"matched_functions_percent":92.36781,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T11:41:14Z","commit_sha":"f400c98bbbafd75021583de04bd3776cf68288ef","commit_message":"maps: sharedFunc_800E6878_2_s02","measures":{"fuzzy_match_percent":89.2277,"total_code":2876860,"matched_code":2566956,"matched_code_percent":89.2277,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6027,"matched_functions_percent":92.36781,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T11:18:38Z","commit_sha":"8179cf14e5926edcea8d30daf7902600f3d08572","commit_message":"maps: sharedFunc_800E939C_2_s02\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":89.09311,"total_code":2876860,"matched_code":2563084,"matched_code_percent":89.09311,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6023,"matched_functions_percent":92.30651,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T09:00:23Z","commit_sha":"94314a349cdf7f8e1160f4d9fa328c20d4444603","commit_message":"Misc. deobfuscation","measures":{"fuzzy_match_percent":89.05418,"total_code":2876860,"matched_code":2561964,"matched_code_percent":89.05418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6019,"matched_functions_percent":92.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T08:40:50Z","commit_sha":"4b0acef1d8e60c2df59a5b8e327997710927d732","commit_message":"Maps: Grianer func demagicking","measures":{"fuzzy_match_percent":89.05418,"total_code":2876860,"matched_code":2561964,"matched_code_percent":89.05418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6019,"matched_functions_percent":92.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T08:05:35Z","commit_sha":"a46e6464cc1262096ee9ad1368edff3ef87e8881","commit_message":"Maps: demagic `sharedFunc_800E6338_2_s00`","measures":{"fuzzy_match_percent":89.05418,"total_code":2876860,"matched_code":2561964,"matched_code_percent":89.05418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6019,"matched_functions_percent":92.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T07:44:31Z","commit_sha":"967829d8c96ebd5ac7a7021df5984e222d95a4fd","commit_message":"map3_s02: func_800D0F9C\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":89.05418,"total_code":2876860,"matched_code":2561964,"matched_code_percent":89.05418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6019,"matched_functions_percent":92.24521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T07:38:29Z","commit_sha":"bbec015072fe4f48e5e14d5ad8bf5ece86ca04e0","commit_message":"Maps: demagic `sharedFunc_800E71E8_2_s00`","measures":{"fuzzy_match_percent":89.02109,"total_code":2876860,"matched_code":2561012,"matched_code_percent":89.02109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6018,"matched_functions_percent":92.22988,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T07:19:07Z","commit_sha":"0325effbd4f63fa4171970ffd38bbc57900ee5ac","commit_message":"Makefile: fix `make build` with empty build/ dir\n\n`make clean && make build` (to rebuild C without running splat etc) should\nwork fine now.\n\nafaik this was bugged since start, but since `make clean` previously deleted\nthe build/ folder entirely it was masked, now `make clean` only removes\nthe region folder inside build/ and leaves build/ in place it became\napparent\n\nTODO: might need to add all our recipes under .PHONY, otherwise make\nwill check for them as a file/folder name and skip building if they\nexist?","measures":{"fuzzy_match_percent":89.02109,"total_code":2876860,"matched_code":2561012,"matched_code_percent":89.02109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6018,"matched_functions_percent":92.22988,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T07:18:31Z","commit_sha":"fd7e468056db5163ac26f1c84d749aee9772cef5","commit_message":"map3_s02: func_800D0608, fixups","measures":{"fuzzy_match_percent":89.02109,"total_code":2876860,"matched_code":2561012,"matched_code_percent":89.02109,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6018,"matched_functions_percent":92.22988,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T07:04:42Z","commit_sha":"3e786a53119e191bc28d342779e9c5b849622e04","commit_message":"Maps: demagic `sharedFunc_800E60FC_2_s02`","measures":{"fuzzy_match_percent":88.93641,"total_code":2876860,"matched_code":2558576,"matched_code_percent":88.93641,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6017,"matched_functions_percent":92.21456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T06:41:40Z","commit_sha":"f8cb300108c5792f88e6e802d9a8f8b5848077d7","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":88.93641,"total_code":2876860,"matched_code":2558576,"matched_code_percent":88.93641,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6017,"matched_functions_percent":92.21456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T06:20:00Z","commit_sha":"b8f2ad43c0543fba57a533040838bd0a7f07489a","commit_message":"Maps: demagic `sharedFunc_800E6420_2_s02`","measures":{"fuzzy_match_percent":88.93641,"total_code":2876860,"matched_code":2558576,"matched_code_percent":88.93641,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6017,"matched_functions_percent":92.21456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T06:16:15Z","commit_sha":"b0f00e9e2326d0b346ae595617d2f6c9b4139fa3","commit_message":"maps: Match func_800DD348, func_800D82AC, func_800DD3D4, func_800D74F4 (#477)\n\n* Update map7_s01_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s01_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c\n\n* Update map7_s03_2.c","measures":{"fuzzy_match_percent":88.93641,"total_code":2876860,"matched_code":2558576,"matched_code_percent":88.93641,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6017,"matched_functions_percent":92.21456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T05:55:04Z","commit_sha":"dc3c4ddd47bd837d0b30ea4aef28fd491a501883","commit_message":"`sharedFunc_800E66E8_2_s02` -> `Ai_Romper_Control`, `sharedData_800ECC14_2_s02` -> `g_Romper_ControlFuncs`, demagicking","measures":{"fuzzy_match_percent":88.90888,"total_code":2876860,"matched_code":2557784,"matched_code_percent":88.90888,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6013,"matched_functions_percent":92.15326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T05:20:17Z","commit_sha":"d21fd338b91e434fa2f3072194473b6cbcdb3c5a","commit_message":"Hex -> dec for easier conversions later","measures":{"fuzzy_match_percent":88.90888,"total_code":2876860,"matched_code":2557784,"matched_code_percent":88.90888,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6013,"matched_functions_percent":92.15326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T02:39:11Z","commit_sha":"53bd701670b0250a9d0a62eeddf04c47837979a5","commit_message":"Fix match build\n\nSomehow I missed to update some of the `INCLUDE_ASM/RODATA` macro paths.\n\nSo close to make a big PR that worked right out of the box without doing any additional fixes after the push ;-;\n\nbtw watch amphibia","measures":{"fuzzy_match_percent":88.90888,"total_code":2876860,"matched_code":2557784,"matched_code_percent":88.90888,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6013,"matched_functions_percent":92.15326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-07T01:31:59Z","commit_sha":"ddb372006878c0af078fdf93fa771eeca27d7589","commit_message":"Multiple versions support + Windows compilation fix (#476)\n\n* WIP: Multiple version support 1\n\nAdded support of the executable and screen overlays of the original Japanese release and second revision + the first three maps of the second revision\n\nAlso moved USA configs and adjusted some code elements in order to adjust to variant of assembly function insertion\n\n* WIP: Multiple version support 2\n\nAdded map support for JAP REV 0 meaning now we have full support for another release.\n\nAlso fixed and added an option for objdiff `make objdiff-config-all` which will allow us to work on all versions at the same time\n\n* WIP: Multiple version support 3\n\nAdded map support for JAP REV 2.\n\n* WIP: Multiple version support 4\n\nFinished support for all japanese released with the addition of REV 1\n\n* WIP: Multiple version support 5\n\nFixed ninja compilation and started the work of adding the european release support.\n\n* WIP: Multiple version support 6\n\nAdded all overlays that contains item descriptions and names and added the first 3 map overlays, both the English and German versions\n\nAlso, altered the Makefile compilation in order to remove redundant compilation and be able to easly add support for the European release.\n\n* WIP: Multiple version support 7\n\nGot a way to quickly add all languages counterparts of map overlays.\n\nThis still require testing if creating the C files would compile or cause missmatch so they would be ready to work on.\n\n* WIP: Multiple version support | Fixes 1\n\nIncorrectly assigned data segment for European executable\n\n* WIP: Multiple version support | Fixes 2\n\nUpdate include_asm.h to support european version + changed European GP value from some configs to be shown in hexadecimal\n\n* WIP: Multiple version support | Fixes 3\n\nYAML style adjustments\n\n* WIP: Multiple version support | Fixes 4\n\nSetup adjustments\n\n* WIP: Multiple version support | Fixes 5\n\nFixed Objdiff compilation in Ninja\n\n* WIP: Multiple version support | Fixes 6\n\nActually fixed Objdiff configuration in Ninja and fixed Windows compilation\n\n* WIP: Multiple version support | Fixes 7\n\nAdjusted tooling scripts. Hope I don't break anything since I didn't tested them.","measures":{"fuzzy_match_percent":88.90888,"total_code":2876860,"matched_code":2557784,"matched_code_percent":88.90888,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6013,"matched_functions_percent":92.15326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T19:40:19Z","commit_sha":"87feb9129b80ea9dd5615568158c5915f28088d5","commit_message":"maps: sharedFunc_800E66E8_2_s02\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":88.90888,"total_code":2876860,"matched_code":2557784,"matched_code_percent":88.90888,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6013,"matched_functions_percent":92.15326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T17:24:50Z","commit_sha":"01493256efbdaa61271cebf5159f77ca0a69c484","commit_message":"maps: sharedFunc_800E6420_2_s02","measures":{"fuzzy_match_percent":88.89331,"total_code":2876860,"matched_code":2557336,"matched_code_percent":88.8933,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6009,"matched_functions_percent":92.09196,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T16:49:31Z","commit_sha":"13889018c638632005be2488737be8b9c92664ef","commit_message":"maps: sharedFunc_800E60FC_2_s02","measures":{"fuzzy_match_percent":88.79431,"total_code":2876860,"matched_code":2554488,"matched_code_percent":88.79431,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6005,"matched_functions_percent":92.03065,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T15:05:57Z","commit_sha":"e04ad9dc9865908904495183e13612ab1b7cd5f2","commit_message":"merge Chara_MoveSpeedUpdate4/5 macro","measures":{"fuzzy_match_percent":88.682526,"total_code":2876860,"matched_code":2551272,"matched_code_percent":88.68252,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6001,"matched_functions_percent":91.969345,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T13:22:43Z","commit_sha":"d59c9143581caed0bc4481c94e61a031b6aafedc","commit_message":"maps: sharedFunc_800E71E8_2_s00\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":88.682526,"total_code":2876860,"matched_code":2551272,"matched_code_percent":88.68252,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":6001,"matched_functions_percent":91.969345,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T12:56:14Z","commit_sha":"42747e4184c2fc9a8e5234cf4fc7287f61aa6667","commit_message":"maps: sharedFunc_800E6338_2_s00","measures":{"fuzzy_match_percent":88.4684,"total_code":2876860,"matched_code":2545112,"matched_code_percent":88.4684,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5996,"matched_functions_percent":91.892715,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T12:40:13Z","commit_sha":"955eb8790f1949612116418a512e965213075578","commit_message":"Add `FP_DIVIDE` and `Q12_DIV` macros","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T12:17:38Z","commit_sha":"01282cd40779a5cbaef85e418baee03caa7683bc","commit_message":"Add Q12 multiplication macros","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T10:51:51Z","commit_sha":"62f66634714818dd95fd8dfaaea4deada35d1064","commit_message":"use `CHUNK_CELL_SIZE` constant","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T10:40:33Z","commit_sha":"66df52467c5abab72f3c1d261f760f8f7074f627","commit_message":"Name structs and fields","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T09:43:57Z","commit_sha":"d3626c65e99fd9c308ada9fddf7c7e6b97c2b4ca","commit_message":"Name GFX functions","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T03:32:45Z","commit_sha":"57f7f45e0fef750bb3325b7af147424e1861a0a1","commit_message":"Account for single Q10 case","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-06T02:54:13Z","commit_sha":"71b42533824eac85ad5865d29c51148127fc54e4","commit_message":"Comments, fixups","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T18:24:21Z","commit_sha":"6779ada40c298e8e745186ddc656f1b69717df28","commit_message":"MAP4_S03: func_800D3AE0","measures":{"fuzzy_match_percent":87.81491,"total_code":2876860,"matched_code":2526312,"matched_code_percent":87.81491,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5991,"matched_functions_percent":91.81609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T18:02:11Z","commit_sha":"8a757e776c906031bb3ae6e939c4358fcc02e4ad","commit_message":"MAP4_S03: func_800D3068 => Math_Vec3AddPolarOffsetXZ","measures":{"fuzzy_match_percent":87.81282,"total_code":2876860,"matched_code":2526252,"matched_code_percent":87.81282,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5990,"matched_functions_percent":91.800766,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T13:44:38Z","commit_sha":"9ebb7b38e101015045753b02257a234576888cb5","commit_message":"MAP4_S03: func_800D344C\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":87.80685,"total_code":2876860,"matched_code":2526080,"matched_code_percent":87.80685,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5989,"matched_functions_percent":91.785446,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T13:01:26Z","commit_sha":"2f8b9e244c3f62d0d385f4e55561cc2af15f30ab","commit_message":"maps: sharedFunc_800E4E84_2_s00\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":87.800446,"total_code":2876860,"matched_code":2525896,"matched_code_percent":87.800446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5988,"matched_functions_percent":91.77011,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T11:34:57Z","commit_sha":"6d5da2eb4371a4d5bace0176286e697bf9f7221a","commit_message":"maps: sharedFunc_800E3E94_2_s00\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":87.49873,"total_code":2876860,"matched_code":2517216,"matched_code_percent":87.49873,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5983,"matched_functions_percent":91.69348,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T11:17:30Z","commit_sha":"a56a714b6dcf28356f415cd35fff9ca172d8fe55","commit_message":"MAP4_S03: func_800D3504","measures":{"fuzzy_match_percent":87.07118,"total_code":2876860,"matched_code":2504916,"matched_code_percent":87.07118,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5978,"matched_functions_percent":91.61686,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T07:54:01Z","commit_sha":"3b93e098bdc677e531432fa56207d989a89cb407","commit_message":"map7_s02: add `Ai_Stalker_Control_11` sym","measures":{"fuzzy_match_percent":87.06993,"total_code":2876860,"matched_code":2504880,"matched_code_percent":87.06993,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5977,"matched_functions_percent":91.60153,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T07:46:29Z","commit_sha":"b1159c5d774bff74bf0d9f6514217ab2a922bd5c","commit_message":"map4_s03: match 2 funcs, minor fixups","measures":{"fuzzy_match_percent":87.06965,"total_code":2876860,"matched_code":2504872,"matched_code_percent":87.06966,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5976,"matched_functions_percent":91.58621,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T06:13:35Z","commit_sha":"6c5c288dc2e0d1a9c878eb275a933f5ae7e96ee7","commit_message":"map4_s03: match 6 funcs\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":87.056725,"total_code":2876860,"matched_code":2504500,"matched_code_percent":87.05672,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5974,"matched_functions_percent":91.55556,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-05T05:27:40Z","commit_sha":"288cb2b061afe2a498b945a6f11cd92b2abc094f","commit_message":"General demagicking","measures":{"fuzzy_match_percent":87.03475,"total_code":2876860,"matched_code":2503868,"matched_code_percent":87.03476,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5968,"matched_functions_percent":91.4636,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-04T23:17:10Z","commit_sha":"0a68ff6f77ee8522eb9faa19379f3f9f67987373","commit_message":"maps: sharedFunc_800E5EC4_2_s00\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":87.03475,"total_code":2876860,"matched_code":2503868,"matched_code_percent":87.03476,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5968,"matched_functions_percent":91.4636,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-04T21:55:20Z","commit_sha":"66c709703579dbfc3aee20a89ad1fd209afd4f5e","commit_message":"maps: sharedFunc_800E5AA4_2_s00\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>","measures":{"fuzzy_match_percent":86.836624,"total_code":2876860,"matched_code":2498168,"matched_code_percent":86.83662,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5963,"matched_functions_percent":91.38697,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-04T19:53:51Z","commit_sha":"e8a849296f6577105da71eaaf6a2b00bbd208087","commit_message":"sharedFunc_800DC894_2_s00: fixup","measures":{"fuzzy_match_percent":86.65308,"total_code":2876860,"matched_code":2492888,"matched_code_percent":86.65309,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5958,"matched_functions_percent":91.31035,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-04T18:54:07Z","commit_sha":"2572c8eab76901cab5bd563044a6190b4ad9ad4c","commit_message":"maps: sharedFunc_800DC894_2_s00\n\nCo-authored-by: gmax1010gh-create <gmax1010gh-create@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":86.65308,"total_code":2876860,"matched_code":2492888,"matched_code_percent":86.65309,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5958,"matched_functions_percent":91.31035,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-04T14:51:57Z","commit_sha":"6194242dc19783a6e44c1823f718c95ac56aca7d","commit_message":"Maps: demagic `sharedFunc_800E39D8_2_s00`","measures":{"fuzzy_match_percent":86.609985,"total_code":2876860,"matched_code":2491648,"matched_code_percent":86.609985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5953,"matched_functions_percent":91.23372,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-04T14:10:37Z","commit_sha":"8f4c8071382393a4b54856ec038663ec8ff7e197","commit_message":"maps: sharedFunc_800E39D8_2_s00\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":86.609985,"total_code":2876860,"matched_code":2491648,"matched_code_percent":86.609985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5953,"matched_functions_percent":91.23372,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T21:29:03Z","commit_sha":"30cfaaac1a4b716712911b865730d20806ed3b8f","commit_message":"LoadSHOverlays.py: read bodyprog/map addrs from exe before loading\n\nShould allow loading in the JP releases by pointing it to the\nfiletable.c.inc created by silentassets\n\nAlso added hp_safe1/s__safe2 loading (they do have some differences in\nJP release, safe1 calls bodyprog funcs instead of safechk.obj funcs?)\n\nTODO: add PAL overlays","measures":{"fuzzy_match_percent":86.39934,"total_code":2876860,"matched_code":2485588,"matched_code_percent":86.39934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5948,"matched_functions_percent":91.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T16:01:34Z","commit_sha":"0c20420d8732fe83b23b96829da08c7446fc0fb9","commit_message":"Maps: Name Air Screamer control funcs","measures":{"fuzzy_match_percent":86.39934,"total_code":2876860,"matched_code":2485588,"matched_code_percent":86.39934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5948,"matched_functions_percent":91.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T15:25:18Z","commit_sha":"c1295c5e456810fd174cf836581cabc84b27009e","commit_message":"Minor corrections","measures":{"fuzzy_match_percent":86.39934,"total_code":2876860,"matched_code":2485588,"matched_code_percent":86.39934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5948,"matched_functions_percent":91.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T14:26:40Z","commit_sha":"8c7d52404774e8d720aae165a5e819a9655b0d16","commit_message":"Maps: Groaner property deobfuscation","measures":{"fuzzy_match_percent":86.39934,"total_code":2876860,"matched_code":2485588,"matched_code_percent":86.39934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5948,"matched_functions_percent":91.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T12:51:39Z","commit_sha":"60382bad961d2a1d3c44de8be83081fb1208c7f1","commit_message":"Maps: Groaner progress","measures":{"fuzzy_match_percent":86.39934,"total_code":2876860,"matched_code":2485588,"matched_code_percent":86.39934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5948,"matched_functions_percent":91.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T11:41:51Z","commit_sha":"f49f1b7d1cb79717420274d2af383695d21419d4","commit_message":"Maps: Groaner deobfuscation","measures":{"fuzzy_match_percent":86.39934,"total_code":2876860,"matched_code":2485588,"matched_code_percent":86.39934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5948,"matched_functions_percent":91.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T09:36:04Z","commit_sha":"350138e0755ee79feed83223f9ae7d351d99b2e3","commit_message":"maps: sharedFunc_800E33DC_2_s00","measures":{"fuzzy_match_percent":86.39934,"total_code":2876860,"matched_code":2485588,"matched_code_percent":86.39934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5948,"matched_functions_percent":91.15709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T08:40:15Z","commit_sha":"dd92ddfe22ffea0511d7257990ae1c91653ff087","commit_message":"maps: sharedFunc_800E0514_2_s00\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":86.201904,"total_code":2876860,"matched_code":2479908,"matched_code_percent":86.2019,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5943,"matched_functions_percent":91.08046,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T08:32:11Z","commit_sha":"5d4f4d44d2772da9ab7f20c1fa4fee03ae0a7e9d","commit_message":"Maps: add `incubus.h`","measures":{"fuzzy_match_percent":86.158104,"total_code":2876860,"matched_code":2478648,"matched_code_percent":86.158104,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5938,"matched_functions_percent":91.00383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T05:36:33Z","commit_sha":"31a59a4b651bed4698090a724fb2ac9d8dcc86e7","commit_message":"RNG: add `Rng_TestProbability` macro","measures":{"fuzzy_match_percent":86.158104,"total_code":2876860,"matched_code":2478648,"matched_code_percent":86.158104,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5938,"matched_functions_percent":91.00383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T03:35:11Z","commit_sha":"fe661fb03bb347a5b9f75985ca6cd5da54c6d0cb","commit_message":"Maps: Air Screamer func cleanup","measures":{"fuzzy_match_percent":86.158104,"total_code":2876860,"matched_code":2478648,"matched_code_percent":86.158104,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5938,"matched_functions_percent":91.00383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-03T02:51:19Z","commit_sha":"a606675d7a01031e55c17b7d942646c2de0a4d4f","commit_message":"game: rename DeathLoadScreen/StartMovieIntro","measures":{"fuzzy_match_percent":86.158104,"total_code":2876860,"matched_code":2478648,"matched_code_percent":86.158104,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5938,"matched_functions_percent":91.00383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T15:07:29Z","commit_sha":"10b830639cc20545bfd0ce5232ffb6b90eb603d9","commit_message":"maps: sharedFunc_800E021C_2_s00","measures":{"fuzzy_match_percent":86.158104,"total_code":2876860,"matched_code":2478648,"matched_code_percent":86.158104,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5938,"matched_functions_percent":91.00383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T14:39:18Z","commit_sha":"a0562f7a568bed3e72a5bf8507353eac8073b527","commit_message":"maps: sharedFunc_800E012C_2_s00","measures":{"fuzzy_match_percent":86.069115,"total_code":2876860,"matched_code":2476088,"matched_code_percent":86.06912,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5933,"matched_functions_percent":90.9272,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T13:25:58Z","commit_sha":"2cea6c9bbd76ddc02fd70dc57cae9506232641d2","commit_message":"Maps: Incubus func cleanup","measures":{"fuzzy_match_percent":86.027405,"total_code":2876860,"matched_code":2474888,"matched_code_percent":86.027405,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5928,"matched_functions_percent":90.85057,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T12:07:50Z","commit_sha":"18fd41e491b65794aae3e25d3848836107e47593","commit_message":"MAP7_S03: func_800DBABC","measures":{"fuzzy_match_percent":86.027405,"total_code":2876860,"matched_code":2474888,"matched_code_percent":86.027405,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5928,"matched_functions_percent":90.85057,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T12:04:12Z","commit_sha":"11bb457747afeb6407dd5338129ab08cb5bccf30","commit_message":"MAP7_S03: func_800DD62C, func_800DDB3C\n\nCo-authored-by: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":86.02588,"total_code":2876860,"matched_code":2474844,"matched_code_percent":86.02588,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5927,"matched_functions_percent":90.83525,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T11:36:35Z","commit_sha":"5d8de08ae29a4f7db2048b35f2dc3eb4099e875d","commit_message":"MAP7_S03: func_800DD594","measures":{"fuzzy_match_percent":86.02157,"total_code":2876860,"matched_code":2474720,"matched_code_percent":86.02157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5925,"matched_functions_percent":90.804596,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T11:28:54Z","commit_sha":"48a7a0b35e1e663456cf2f5b61700d350a01f3ae","commit_message":"Formatting","measures":{"fuzzy_match_percent":86.01628,"total_code":2876860,"matched_code":2474568,"matched_code_percent":86.01628,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5924,"matched_functions_percent":90.78927,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T11:02:50Z","commit_sha":"b175814098ed00f1c17e5c4c4edacc37aa3c0fdd","commit_message":"Makefile: add to POSTBUILD_TARGETS\n\nwhoops","measures":{"fuzzy_match_percent":86.01628,"total_code":2876860,"matched_code":2474568,"matched_code_percent":86.01628,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5924,"matched_functions_percent":90.78927,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T10:58:48Z","commit_sha":"b4e205d8b6d809302051d999298143dc3859abb4","commit_message":"b_konami: split LZSS code to lzss.c, fixup last sym","measures":{"fuzzy_match_percent":86.01628,"total_code":2876860,"matched_code":2474568,"matched_code_percent":86.01628,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5924,"matched_functions_percent":90.78927,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2026-01-02T10:44:04Z","commit_sha":"15d036f8f5c73e278af371e8641e193f3669bf93","commit_message":"MAP7_S03: func_800DDB68","measures":{"fuzzy_match_percent":86.01628,"total_code":2876860,"matched_code":2474568,"matched_code_percent":86.01628,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5924,"matched_functions_percent":90.78927,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T10:29:59Z","commit_sha":"8858351d366667ad04db35db9a880a38194b25c2","commit_message":"MAP7_S03: func_800DDBA4","measures":{"fuzzy_match_percent":86.0142,"total_code":2876860,"matched_code":2474508,"matched_code_percent":86.01419,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5923,"matched_functions_percent":90.77395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T10:27:10Z","commit_sha":"ec7cd2d4d69b3c8141c524b671379b0a6b039686","commit_message":"MAP7_S03: func_800DDBBC","measures":{"fuzzy_match_percent":86.01336,"total_code":2876860,"matched_code":2474484,"matched_code_percent":86.01336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5922,"matched_functions_percent":90.75862,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T10:21:08Z","commit_sha":"45afc4580804c7fff5c04e45db2883ee449414ff","commit_message":"maps: share sharedFunc_800E4830_2_s00","measures":{"fuzzy_match_percent":86.00419,"total_code":2876860,"matched_code":2474220,"matched_code_percent":86.00419,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5921,"matched_functions_percent":90.74329,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T10:18:55Z","commit_sha":"7eca5661d6df0b8c4a307bb53b66d395bc6ca7be","commit_message":"sharedFunc_800E4830_2_s00 (#475)","measures":{"fuzzy_match_percent":85.77894,"total_code":2876860,"matched_code":2467740,"matched_code_percent":85.77894,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5917,"matched_functions_percent":90.68199,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T09:11:04Z","commit_sha":"0f11a4796454d674c88a54f7a2ddd7acd307e034","commit_message":"b_konami: deobfuscation, wip JP antimodchip code","measures":{"fuzzy_match_percent":85.722626,"total_code":2876860,"matched_code":2466120,"matched_code_percent":85.722626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5916,"matched_functions_percent":90.66667,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T09:03:19Z","commit_sha":"e13894cdc46e9c87e8f89c3c279861ce47940992","commit_message":"Maps: name local Air Screamer func vars","measures":{"fuzzy_match_percent":85.722626,"total_code":2876860,"matched_code":2466120,"matched_code_percent":85.722626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5916,"matched_functions_percent":90.66667,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T05:19:07Z","commit_sha":"a149210c000f46430053a9a548e1e5152fc46e2d","commit_message":"b_konami: deobfuscate LZSS code","measures":{"fuzzy_match_percent":85.722626,"total_code":2876860,"matched_code":2466120,"matched_code_percent":85.722626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5916,"matched_functions_percent":90.66667,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-02T02:50:14Z","commit_sha":"a80a553c01a7ef97f3e30377dfd9b0fec8d488ab","commit_message":"extract.py: add actual LZSS decompress code, decompress CMP files\n\nActually decompresses SAFEx.BIN files properly, old code just\ndecompressed pretty much by coincidence, and might have broken in some\ngame builds.\n\nBased on code in JP version to handle the SAFE files, might come in\nuseful when we start to decomp that ver.\n\nThis also works on the CMP files in the TEST folder, but those files\nall already had decompressed versions next to them so we don't actually\ngain anything from decompressing them :P\n\nTODO: Code to recompress LZSS, will probably be needed for insertovl","measures":{"fuzzy_match_percent":85.722626,"total_code":2876860,"matched_code":2466120,"matched_code_percent":85.722626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5916,"matched_functions_percent":90.66667,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T23:34:03Z","commit_sha":"1eeadbb0fb5d35b9a00487ac121f10d9798102bf","commit_message":"silentassets: decompress/decrypt HP_SAFE1 and S__SAFE2","measures":{"fuzzy_match_percent":85.722626,"total_code":2876860,"matched_code":2466120,"matched_code_percent":85.722626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5916,"matched_functions_percent":90.66667,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T20:45:37Z","commit_sha":"41584d52d26bea2e6d4da3ef9833cc3292a21508","commit_message":"maps: sharedFunc_800DF8A0_2_s00\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":85.722626,"total_code":2876860,"matched_code":2466120,"matched_code_percent":85.722626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5916,"matched_functions_percent":90.66667,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T20:36:23Z","commit_sha":"c351d1ae58ab1b177d9925fee84b0bc4ff5cfcb4","commit_message":"maps: sharedFunc_800DF60C_2_s00","measures":{"fuzzy_match_percent":85.69204,"total_code":2876860,"matched_code":2465240,"matched_code_percent":85.69204,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5911,"matched_functions_percent":90.590034,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T20:18:12Z","commit_sha":"fcef6d8759ddcc8ecd7da297be09acffe8fe8542","commit_message":"maps: sharedFunc_800DF448_2_s00","measures":{"fuzzy_match_percent":85.64685,"total_code":2876860,"matched_code":2463940,"matched_code_percent":85.64685,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5906,"matched_functions_percent":90.513405,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T17:40:07Z","commit_sha":"8f3f7b86e11de97b62474bf447a501f91f7d1fc7","commit_message":"maps: sharedFunc_800DEE24_2_s00","measures":{"fuzzy_match_percent":85.56829,"total_code":2876860,"matched_code":2461680,"matched_code_percent":85.56829,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5901,"matched_functions_percent":90.43678,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T14:37:49Z","commit_sha":"c89ef3b17872ca56a39c5ec90f96256bf0b6e725","commit_message":"maps: sharedFunc_800DE250_2_s00\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":85.38893,"total_code":2876860,"matched_code":2456520,"matched_code_percent":85.38893,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5896,"matched_functions_percent":90.36015,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T12:40:41Z","commit_sha":"27e04e8ef0d233c76d2d5bd806f936fe29783570","commit_message":"Remove `e_CharaUnk0Flags` enum","measures":{"fuzzy_match_percent":85.2485,"total_code":2876860,"matched_code":2452480,"matched_code_percent":85.2485,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5891,"matched_functions_percent":90.28352,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T12:30:45Z","commit_sha":"c014dc1fac2d7fcd83a7d891d4c25f6752a6bfab","commit_message":"Maps: Air Screamer deobfuscation","measures":{"fuzzy_match_percent":85.2485,"total_code":2876860,"matched_code":2452480,"matched_code_percent":85.2485,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5891,"matched_functions_percent":90.28352,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T12:19:38Z","commit_sha":"2d9b5fca65e00c68e5131b45f420e0cfa937c7d3","commit_message":"maps: sharedFunc_800DDA80_2_s00","measures":{"fuzzy_match_percent":85.2485,"total_code":2876860,"matched_code":2452480,"matched_code_percent":85.2485,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5891,"matched_functions_percent":90.28352,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T11:48:25Z","commit_sha":"02127456e77da816deabe666ef15a3ebd3e8cf1b","commit_message":"Maps: Air Screamer deobfuscation, move Harry bone enum","measures":{"fuzzy_match_percent":85.0893,"total_code":2876860,"matched_code":2447900,"matched_code_percent":85.089294,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5886,"matched_functions_percent":90.206894,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T10:47:25Z","commit_sha":"5d93bf4b401a173261b63c9bacd05bfe79eddf1e","commit_message":"maps: sharedFunc_800DD2C4_2_s00\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":85.0893,"total_code":2876860,"matched_code":2447900,"matched_code_percent":85.089294,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5886,"matched_functions_percent":90.206894,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T10:32:32Z","commit_sha":"5da7d05b3a6ca03494921ede07133343ddd65468","commit_message":"Fix regex formatting error, name field","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2026-01-01T09:36:38Z","commit_sha":"2e59ea5c06bb9ad5a7f635357a05647b636d0c11","commit_message":"Maps: Air Screamer progress","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T14:43:39Z","commit_sha":"f6989caa7d54401db5bd572424ce80b4ef38bbc9","commit_message":"Maps: Air Screamer progress","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T13:58:26Z","commit_sha":"4b35920353a80a31806c04927c0ebfac96d37443","commit_message":"Maps: Air Screamer progress","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T07:33:59Z","commit_sha":"b5126fc3f264e85de4960e0bb74aa09ef05b8190","commit_message":"Maps: Larval Stalker progress","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T07:10:00Z","commit_sha":"e76b8df71029d16f08d150165557be43cf6dcb2d","commit_message":"Maps: Larval Stalker progress","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T06:25:42Z","commit_sha":"abdf9fb890b14c40427dfcae8dc1656637a8b879","commit_message":"Maps: Split Head progress","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T05:42:01Z","commit_sha":"a5f8345bb31f863785362e95ff1eaa2b153e457d","commit_message":"compilation fix 3\n\npls compile pls","measures":{"fuzzy_match_percent":85.00031,"total_code":2876860,"matched_code":2445340,"matched_code_percent":85.00031,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5880,"matched_functions_percent":90.114944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T04:42:56Z","commit_sha":"a04156a3cffec31d2666b57e1a81812552dc492d","commit_message":"Maps: name Split Head control funcs","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T04:35:17Z","commit_sha":"5e43cc2b970fe3e52a9da1f28f12ef88a993cca9","commit_message":"Maps: Split Head progress","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T03:41:16Z","commit_sha":"18a94e317c9d3d7e0dda441fe38bacb687aa40ff","commit_message":"Update `sharedFunc_800D53AC_0_s01`, name character radius field, remove hex where its useless","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T03:09:52Z","commit_sha":"44a2e05667a55113fc4f06f74507b5fa4db44342","commit_message":"Reformat `sharedFunc_800D53AC_0_s01`","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-31T00:04:41Z","commit_sha":"d864d4c54cd20f79a9b6029619b2e3cccff29782","commit_message":"maps: sharedFunc_800D5F00_0_s01\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":85.005875,"total_code":2876860,"matched_code":2445500,"matched_code_percent":85.005875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5881,"matched_functions_percent":90.13027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T23:31:01Z","commit_sha":"9823c62572ad51b5fb35b81488c29d76907da72c","commit_message":"maps: sharedFunc_800D53AC_0_s01\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>","measures":{"fuzzy_match_percent":84.80065,"total_code":2876860,"matched_code":2439596,"matched_code_percent":84.80065,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5875,"matched_functions_percent":90.038315,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T23:19:13Z","commit_sha":"27db5e2b19773b1e592d21479d5e80ff0e30b7a8","commit_message":"maps: sharedFunc_800D72E8_0_s01\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":84.66467,"total_code":2876860,"matched_code":2435684,"matched_code_percent":84.664665,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5869,"matched_functions_percent":89.94636,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T22:47:22Z","commit_sha":"e633e4ce00d11ed1b592b7422ce8de86badfe21a","commit_message":"maps: remove merged sharedFunc .h","measures":{"fuzzy_match_percent":84.592926,"total_code":2876860,"matched_code":2433620,"matched_code_percent":84.592926,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5863,"matched_functions_percent":89.85441,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T22:40:15Z","commit_sha":"3c79895459a1fb306b0c263a8deda2bc89a5d0ab","commit_message":"maps: actually share sharedFunc_800D7120_0_s01\n\nd'oh\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":84.592926,"total_code":2876860,"matched_code":2433620,"matched_code_percent":84.592926,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5863,"matched_functions_percent":89.85441,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T22:33:56Z","commit_sha":"c8790ea87a06b00c583171421dd7a085b0223f82","commit_message":"maps: Ai_PuppetNurse_Control12, sharedFunc_800D7120_0_s01\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":84.549545,"total_code":2876860,"matched_code":2432372,"matched_code_percent":84.549545,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5857,"matched_functions_percent":89.76245,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T21:39:33Z","commit_sha":"0cd08c17a38938b7f923471920baf7485e967669","commit_message":"maps: merge larvalstalker code to larval_stalker.c","measures":{"fuzzy_match_percent":84.43831,"total_code":2876860,"matched_code":2429172,"matched_code_percent":84.43831,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5853,"matched_functions_percent":89.70115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T21:32:16Z","commit_sha":"7a496d168663baa1194934a169c4fec2237ab03e","commit_message":"maps: move Player.h -> player.c","measures":{"fuzzy_match_percent":84.43831,"total_code":2876860,"matched_code":2429172,"matched_code_percent":84.43831,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5853,"matched_functions_percent":89.70115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T21:29:26Z","commit_sha":"f9b6e82a196042444ee23b453a06678e254237c5","commit_message":"maps: merge splithead code to split_head.c","measures":{"fuzzy_match_percent":84.43831,"total_code":2876860,"matched_code":2429172,"matched_code_percent":84.43831,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5853,"matched_functions_percent":89.70115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T17:45:00Z","commit_sha":"a46e65df9edd8005f63d4ba84e2acfb9bb83ffab","commit_message":"maps: sharedFunc_800DACA8_2_s00\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":84.43831,"total_code":2876860,"matched_code":2429172,"matched_code_percent":84.43831,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5853,"matched_functions_percent":89.70115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T16:10:46Z","commit_sha":"6b8185f61e6324b9f1866490740dbb475b057140","commit_message":"maps: sharedFunc_800DA900_2_s00","measures":{"fuzzy_match_percent":84.27981,"total_code":2876860,"matched_code":2424612,"matched_code_percent":84.27981,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5848,"matched_functions_percent":89.62452,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T14:42:54Z","commit_sha":"3f918491ae710588fe23ff27a7f599fad34b513d","commit_message":"Maps: name Alessa animations","measures":{"fuzzy_match_percent":84.11713,"total_code":2876860,"matched_code":2419932,"matched_code_percent":84.11713,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5843,"matched_functions_percent":89.54789,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T14:38:56Z","commit_sha":"f882e6db3d5ff2a53d966033470ca4bf19aa4017","commit_message":"maps: sharedFunc_800D9C60_2_s00","measures":{"fuzzy_match_percent":84.11713,"total_code":2876860,"matched_code":2419932,"matched_code_percent":84.11713,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5843,"matched_functions_percent":89.54789,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T14:04:28Z","commit_sha":"a1227bfeba571c93aa653c53ee727ecf635be1ca","commit_message":"maps: sharedFunc_800D8D44_2_s00","measures":{"fuzzy_match_percent":83.919,"total_code":2876860,"matched_code":2414232,"matched_code_percent":83.91899,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5838,"matched_functions_percent":89.47126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T13:34:54Z","commit_sha":"0c55370a417c57cbcb31251e6ee64baea543b0a6","commit_message":"Maps: Air Screamer progress","measures":{"fuzzy_match_percent":83.72504,"total_code":2876860,"matched_code":2408652,"matched_code_percent":83.72504,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5833,"matched_functions_percent":89.39464,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T12:44:12Z","commit_sha":"ad822cbb328eaa9d4f37e63a44cf3a76d0dc463b","commit_message":"maps: sharedFunc_800D5554_2_s00\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":83.72504,"total_code":2876860,"matched_code":2408652,"matched_code_percent":83.72504,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5833,"matched_functions_percent":89.39464,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T12:15:26Z","commit_sha":"99818dd232f2f995777ced56ce0ac71f0be64b2e","commit_message":"maps: sharedFunc_800D3FA4_2_s00","measures":{"fuzzy_match_percent":83.541504,"total_code":2876860,"matched_code":2403372,"matched_code_percent":83.541504,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5828,"matched_functions_percent":89.31801,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T12:01:47Z","commit_sha":"dbcd52f1e41b8ea9aa82109910a43ab7cef66f5a","commit_message":"Maps: Air Screamer progress","measures":{"fuzzy_match_percent":83.37674,"total_code":2876860,"matched_code":2398632,"matched_code_percent":83.37673,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5823,"matched_functions_percent":89.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T10:14:23Z","commit_sha":"b65155c123dde09eae5428be9f1d715f9174a882","commit_message":"Maps: name local Air Screamer func vars, misc. progress","measures":{"fuzzy_match_percent":83.37674,"total_code":2876860,"matched_code":2398632,"matched_code_percent":83.37673,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5823,"matched_functions_percent":89.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T09:55:24Z","commit_sha":"43f318d683702371b7f9fd948cf180022e7e4092","commit_message":"maps: sharedFunc_800D4070_1_s05\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":83.37674,"total_code":2876860,"matched_code":2398632,"matched_code_percent":83.37673,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5823,"matched_functions_percent":89.24138,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T08:41:29Z","commit_sha":"99fe13c7e9a2ac96d89e904b365d5f8d06af6bec","commit_message":"build fix","measures":{"fuzzy_match_percent":83.31278,"total_code":2876860,"matched_code":2396792,"matched_code_percent":83.31278,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5821,"matched_functions_percent":89.21073,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T02:36:06Z","commit_sha":"c29f08eb56a2a789c7e5117fca69564181b32532","commit_message":"Partially merge airscreamer code to .c file (140+ funcs remain..)\n\nStarted moving airscreamer code over but then realized the weird code\nafter the main airscreamer includes was also related to it >.>\n\nLooks like there's 140+ funcs there which are used by it, more than some\nboss enemies? odd...\nThe weird code that needed `idx = 3;  sharedData[idx][0]` stuff seems to be\npart of this, and the 25+ funcs that used `field_14C.bits.field_14C` for\na switch.\n\nKinda hoping I'm wrong and this is just some generic exterior-enemy\ncode, but looks like it does call into AirScreamer specific funcs, maybe\ncan try breaking in debugger and check what the ID of each chara thats\npassed over is to confirm it.\n\nShould be fine to just move the main funcs over for now, can move\nthe rest once the INCLUDE_ASM gaps / ifdefs are finished.","measures":{"fuzzy_match_percent":83.219345,"total_code":2876860,"matched_code":2394104,"matched_code_percent":83.219345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5819,"matched_functions_percent":89.18008,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T01:51:35Z","commit_sha":"6598b339226e5767ad92cf2785de3f0dba1f5fc7","commit_message":"`sharedFunc_800D8244_1_s02` -> `Ai_Creeper_ControlUpdate`","measures":{"fuzzy_match_percent":83.219345,"total_code":2876860,"matched_code":2394104,"matched_code_percent":83.219345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5819,"matched_functions_percent":89.18008,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T01:47:10Z","commit_sha":"5baeb9656d48266671b6ed78bdee60275b43dd1e","commit_message":"maps: merge stalker code into stalker.c","measures":{"fuzzy_match_percent":83.219345,"total_code":2876860,"matched_code":2394104,"matched_code_percent":83.219345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5819,"matched_functions_percent":89.18008,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T01:31:38Z","commit_sha":"84949ab171861b721efceca8ebb96ab91c870b9e","commit_message":"maps: merge creeper/bloodsucker code into .c files\n\nStill need to setup proper splits for them, but this works for now","measures":{"fuzzy_match_percent":83.219345,"total_code":2876860,"matched_code":2394104,"matched_code_percent":83.219345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5819,"matched_functions_percent":89.18008,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-30T01:10:21Z","commit_sha":"6da6597ee29831f28931d6fbfd47bcd04ff85f84","commit_message":"maps: Ai_PuppetNurse_Control13 / map1_s05::func_800D5400\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":83.219345,"total_code":2876860,"matched_code":2394104,"matched_code_percent":83.219345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5819,"matched_functions_percent":89.18008,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T22:56:52Z","commit_sha":"712dfbb162d348d536e14eca0046d1153fe0e809","commit_message":"lib_unk: `func_8009ECCC` (#473)\n\nCo-authored-by: belek666 <belek666@onet.eu>","measures":{"fuzzy_match_percent":83.170265,"total_code":2876860,"matched_code":2392692,"matched_code_percent":83.170265,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5814,"matched_functions_percent":89.10345,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T22:03:13Z","commit_sha":"70e72097fef1a22568f8edb58b11f051a468ac6e","commit_message":"maps: sharedFunc_800D2D74_1_s05\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":83.16442,"total_code":2876860,"matched_code":2392524,"matched_code_percent":83.16442,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5813,"matched_functions_percent":89.08813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T21:32:10Z","commit_sha":"1a9107e2c28b68441278217df4ba0265076391e4","commit_message":"maps: sharedFunc_800D3388_1_s05","measures":{"fuzzy_match_percent":83.05625,"total_code":2876860,"matched_code":2389412,"matched_code_percent":83.056244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5811,"matched_functions_percent":89.05747,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T18:16:20Z","commit_sha":"749835b9a42b5b17bccd06ffc16a49e60f47f3bf","commit_message":"maps: fixups, add enums to event data\n\n```\ntools/m2ctx.py src/maps/map0_s00/map0_s00_events_data.c\ntools/bin2c.py @tools/bin2c.cfg -t s_EventParam -b assets/USA/VIN/MAP0_S00.BIN -o 0x800DF754 -s ctx.c -c 72\n```","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T14:28:23Z","commit_sha":"0d66ea527d2be353c659209287034fba96445070","commit_message":"Fix build","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T13:18:45Z","commit_sha":"bd517717ea89d03bc98f9d509e72fa7f492ec5f2","commit_message":"Name Stalker character control funcs, misc. deobfuscation","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T12:30:18Z","commit_sha":"3ff9aa9c10a3745aeaccdc94aa445cd13773c90f","commit_message":"Name Hanged Scratcher character control funcs","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T12:00:59Z","commit_sha":"39277b477854a1ec1c140bfb65debcb83087dbaa","commit_message":"Add character state enums","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T10:15:14Z","commit_sha":"86ae508d98ac6baafa1c132dcd9a035cc650ccc6","commit_message":"Add `e_StalkerControl`","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T09:24:40Z","commit_sha":"b01b155d6d68635dc568a61a4949b5fb4def1548","commit_message":"Add `TIMESTEP_ANGLE_*` macros, name local vars","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T08:53:30Z","commit_sha":"d0e7a91c9cc58fc9f5b4c1b9449af75af4863e92","commit_message":"MAP4_S05: func_800D7360 = Map_WorldObjectsUpdate","measures":{"fuzzy_match_percent":82.92361,"total_code":2876860,"matched_code":2385596,"matched_code_percent":82.9236,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5809,"matched_functions_percent":89.02682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T07:36:15Z","commit_sha":"4be4ad99ed56edf2aa176a0234164dd6ffffe831","commit_message":"Deobfuscate `sharedFunc_800D00D0_1_s05`","measures":{"fuzzy_match_percent":82.90177,"total_code":2876860,"matched_code":2384968,"matched_code_percent":82.90178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5808,"matched_functions_percent":89.0115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T06:59:57Z","commit_sha":"80e692ffa5b9a4c5e42275724830368e8c37e037","commit_message":"Move character func decls, deobfuscation, update comments","measures":{"fuzzy_match_percent":82.90177,"total_code":2876860,"matched_code":2384968,"matched_code_percent":82.90178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5808,"matched_functions_percent":89.0115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T04:47:13Z","commit_sha":"6f5f382ba20d2711941bbcf806e043865cf91119","commit_message":"Split Head character deobuscation","measures":{"fuzzy_match_percent":82.90177,"total_code":2876860,"matched_code":2384968,"matched_code_percent":82.90178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5808,"matched_functions_percent":89.0115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T04:33:47Z","commit_sha":"51a765e8e165bd7eea7158c93dedfea17d8e500c","commit_message":"bodyfrog: map system recognition\n\nalso made some minor data migration of maps and a minor fix for a dumb ass issue with bin2c.py script","measures":{"fuzzy_match_percent":82.90177,"total_code":2876860,"matched_code":2384968,"matched_code_percent":82.90178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5808,"matched_functions_percent":89.0115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T04:25:17Z","commit_sha":"40e13c0398033db6cd9cec084370503e25570556","commit_message":"bodyfrog: map system recognition\n\nalso made some minor data migration of maps and a minor fix for a dumb ass issue with bin2c.py script","measures":{"fuzzy_match_percent":82.90177,"total_code":2876860,"matched_code":2384968,"matched_code_percent":82.90178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5808,"matched_functions_percent":89.0115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T04:19:15Z","commit_sha":"f7f5262858c825b2d60f15954953187e1adaa647","commit_message":"bodyfrog: map system recognition\n\nalso made some minor data migration of maps and a minor fix for a dumb ass issue with bin2c.py script","measures":{"fuzzy_match_percent":82.90177,"total_code":2876860,"matched_code":2384968,"matched_code_percent":82.90178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5808,"matched_functions_percent":89.0115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-29T04:06:45Z","commit_sha":"65c5ce7959e9f1e0b1c3eba6b65bea317b6959e3","commit_message":"bodyfrog: map system recognition\n\nalso made some minor data migration of maps and a minor fix for a dumb ass issue with bin2c.py script","measures":{"fuzzy_match_percent":82.86048,"total_code":2876860,"matched_code":2383780,"matched_code_percent":82.86048,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5807,"matched_functions_percent":88.99616,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T21:23:29Z","commit_sha":"79717dbeb221b0c9d98576afb63fa1a1283b037c","commit_message":"maps: sharedFunc_800D274C_1_s05","measures":{"fuzzy_match_percent":82.90177,"total_code":2876860,"matched_code":2384968,"matched_code_percent":82.90178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5808,"matched_functions_percent":89.0115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T20:22:49Z","commit_sha":"84f6d1bfd131b81a472a872d48e1acda0e98ee41","commit_message":"lib_unk: func_8009E718 (#472)\n\nCo-authored-by: laura-a-n-n <laura@lauraann.dev>","measures":{"fuzzy_match_percent":82.79221,"total_code":2876860,"matched_code":2381816,"matched_code_percent":82.79221,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5806,"matched_functions_percent":88.98084,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T14:54:11Z","commit_sha":"02eb9e9fb7a8315a2aff864ce9b0ddba9e0c7cf4","commit_message":"General character func deobfuscation","measures":{"fuzzy_match_percent":82.78554,"total_code":2876860,"matched_code":2381624,"matched_code_percent":82.78554,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5805,"matched_functions_percent":88.965515,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T13:49:17Z","commit_sha":"afd1164564a80874208bd103193e4e871a192010","commit_message":"maps: sharedFunc_800D19B8_1_s05","measures":{"fuzzy_match_percent":82.78554,"total_code":2876860,"matched_code":2381624,"matched_code_percent":82.78554,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5805,"matched_functions_percent":88.965515,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T13:09:52Z","commit_sha":"83650df4eb4f664d822f095e3a0a7b002671a369","commit_message":"`state_2` -> `controlState_2`","measures":{"fuzzy_match_percent":82.636765,"total_code":2876860,"matched_code":2377344,"matched_code_percent":82.636765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5803,"matched_functions_percent":88.93487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T11:44:28Z","commit_sha":"c532fb61bef2beb0d36c2871bedaa882c1063bb1","commit_message":"Name character control funcs, add control state enums","measures":{"fuzzy_match_percent":82.636765,"total_code":2876860,"matched_code":2377344,"matched_code_percent":82.636765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5803,"matched_functions_percent":88.93487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T10:48:23Z","commit_sha":"8621767d7fdfd70b59f6da5dd2bca042cf5dedeb","commit_message":"General character function deobfuscations","measures":{"fuzzy_match_percent":82.636765,"total_code":2876860,"matched_code":2377344,"matched_code_percent":82.636765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5803,"matched_functions_percent":88.93487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T07:49:00Z","commit_sha":"5fb85bf44a160a393688355b4bf9fa519e4860e1","commit_message":"Add `#undef`s for local macros","measures":{"fuzzy_match_percent":82.636765,"total_code":2876860,"matched_code":2377344,"matched_code_percent":82.636765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5803,"matched_functions_percent":88.93487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T07:40:04Z","commit_sha":"8cbebea263b8877d4e0965b396a01ee1da4d8c6c","commit_message":"Character function deobfuscation","measures":{"fuzzy_match_percent":82.636765,"total_code":2876860,"matched_code":2377344,"matched_code_percent":82.636765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5803,"matched_functions_percent":88.93487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T04:52:29Z","commit_sha":"006ae203e1cf7b29c8f96fb8cc41a578d3fe3359","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":82.636765,"total_code":2876860,"matched_code":2377344,"matched_code_percent":82.636765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5803,"matched_functions_percent":88.93487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T04:40:58Z","commit_sha":"76ad07cb364e5629961151e42f5dd3542bbb8cd3","commit_message":"lib_unk: `func_8009E230`, `func_8009E268`, `func_8009E2A0`, `func_8009E2D8` (#471)\n\n* lib_unk: `func_8009E230`\n\n* lib_unk: `func_8009E268`\n\n* lib_unk: `func_8009E2A0`\n\n* lib_unk: `func_8009E2D8`","measures":{"fuzzy_match_percent":82.636765,"total_code":2876860,"matched_code":2377344,"matched_code_percent":82.636765,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5803,"matched_functions_percent":88.93487,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T04:40:44Z","commit_sha":"740bf4cb65e7334d6fdd66585a4c15f87b2db90f","commit_message":"lib_unk: `func_8009EC64` (#470)\n\n* lib_unk: `func_8009EC64`\n\n* remove `@hack`","measures":{"fuzzy_match_percent":82.628975,"total_code":2876860,"matched_code":2377120,"matched_code_percent":82.628975,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5799,"matched_functions_percent":88.873566,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T03:04:36Z","commit_sha":"c41cb46f70508caef1f66e686a8793843136602c","commit_message":"Use property aliases","measures":{"fuzzy_match_percent":82.62536,"total_code":2876860,"matched_code":2377016,"matched_code_percent":82.62537,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5798,"matched_functions_percent":88.85824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T02:15:27Z","commit_sha":"ddfa49636496d801384f06af22cacee0e385e9c6","commit_message":"Larval stalker deobfuscation","measures":{"fuzzy_match_percent":82.62536,"total_code":2876860,"matched_code":2377016,"matched_code_percent":82.62537,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5798,"matched_functions_percent":88.85824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-28T00:51:14Z","commit_sha":"a4aadd3587aa77eda34979af5dcfa110f17eaa25","commit_message":"lib_unk: `func_8009E82C` (#469)\n\n* lib_unk: `func_8009E82C`\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\n\n* delete `var_t1`\n\n---------\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":82.62536,"total_code":2876860,"matched_code":2377016,"matched_code_percent":82.62537,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5798,"matched_functions_percent":88.85824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T23:26:30Z","commit_sha":"ff9c66f15ef5d155dfa93da9240434dd1b929844","commit_message":"maps: sharedFunc_800D4594_1_s05","measures":{"fuzzy_match_percent":82.613686,"total_code":2876860,"matched_code":2376680,"matched_code_percent":82.613686,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5797,"matched_functions_percent":88.84291,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T23:10:47Z","commit_sha":"96149ea2cf9b3188a474c1e55ce69b9753c43707","commit_message":"maps: sharedFunc_800D11A0_1_s05","measures":{"fuzzy_match_percent":82.55974,"total_code":2876860,"matched_code":2375128,"matched_code_percent":82.55974,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5795,"matched_functions_percent":88.81226,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T22:05:00Z","commit_sha":"17e39df47a0db1ecccf1c64be29496649dc5a149","commit_message":"maps: sharedFunc_800D0948_1_s05","measures":{"fuzzy_match_percent":82.451004,"total_code":2876860,"matched_code":2372000,"matched_code_percent":82.451004,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5793,"matched_functions_percent":88.78161,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T19:35:14Z","commit_sha":"2e695d7766256a9e9b01ac0497f2470ed37bdc58","commit_message":"maps: sharedFunc_800D00D0_1_s05","measures":{"fuzzy_match_percent":82.30251,"total_code":2876860,"matched_code":2367728,"matched_code_percent":82.30251,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5791,"matched_functions_percent":88.75096,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T18:22:31Z","commit_sha":"8d6a67b9e8d8fb90c77f484625a65a851dd11e1f","commit_message":"maps: sharedFunc_800CCF30_1_s05","measures":{"fuzzy_match_percent":82.15179,"total_code":2876860,"matched_code":2363392,"matched_code_percent":82.15179,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5789,"matched_functions_percent":88.72031,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T16:19:27Z","commit_sha":"29f95e0c401e8d23c859774c36f16bf136afff8c","commit_message":"maps: sharedFunc_800CC618_1_s05","measures":{"fuzzy_match_percent":82.03194,"total_code":2876860,"matched_code":2359944,"matched_code_percent":82.03194,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5787,"matched_functions_percent":88.68965,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T14:01:57Z","commit_sha":"0abc391000a03602838fb11c961b1751d67d92b8","commit_message":"Start Larval Stalker property deobfuscation, `func_8006FAFC` -> `Chara_HeadingAngleGet`","measures":{"fuzzy_match_percent":81.89429,"total_code":2876860,"matched_code":2355984,"matched_code_percent":81.89429,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5785,"matched_functions_percent":88.659004,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T13:20:00Z","commit_sha":"38ca5f2d65e83a11f7bd08f8e998986c3d60849c","commit_message":"Stalker deobfuscation","measures":{"fuzzy_match_percent":81.89429,"total_code":2876860,"matched_code":2355984,"matched_code_percent":81.89429,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5785,"matched_functions_percent":88.659004,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T12:59:53Z","commit_sha":"678e7dc3c3dafb0cef6cd6ebd33dfa9cb82645ee","commit_message":"maps: sharedFunc_800CBF74_1_s05","measures":{"fuzzy_match_percent":81.89429,"total_code":2876860,"matched_code":2355984,"matched_code_percent":81.89429,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5785,"matched_functions_percent":88.659004,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T12:24:37Z","commit_sha":"9669d2fe8cf76958b12768ca58fe2c9bf563318c","commit_message":"Stalker deobfuscation","measures":{"fuzzy_match_percent":81.7761,"total_code":2876860,"matched_code":2352584,"matched_code_percent":81.7761,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5783,"matched_functions_percent":88.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T11:14:46Z","commit_sha":"e31fba3d62822df5e443fc5655d8e925478426dd","commit_message":"map1_s03: func_800DAF18\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":81.7761,"total_code":2876860,"matched_code":2352584,"matched_code_percent":81.7761,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5783,"matched_functions_percent":88.62835,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T09:44:37Z","commit_sha":"2573e91ed2216f658aafbd6292d9cbf2589c0d00","commit_message":"Stalker deobfuscation","measures":{"fuzzy_match_percent":81.636505,"total_code":2876860,"matched_code":2348568,"matched_code_percent":81.636505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5782,"matched_functions_percent":88.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T07:24:35Z","commit_sha":"705dee07a7ece68366c7f8713316f5678a8ec45c","commit_message":"Stalker deobfuscation","measures":{"fuzzy_match_percent":81.636505,"total_code":2876860,"matched_code":2348568,"matched_code_percent":81.636505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5782,"matched_functions_percent":88.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T05:19:26Z","commit_sha":"250105519f070784309f185c61767e1d63f9a097","commit_message":"Stalker deobfuscation, add `ANIM_TIME_REL_KEYFRAME_IDX_GET` macro","measures":{"fuzzy_match_percent":81.636505,"total_code":2876860,"matched_code":2348568,"matched_code_percent":81.636505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5782,"matched_functions_percent":88.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T03:31:32Z","commit_sha":"a00bf469047633ef5c7a5e970646dd533244bb21","commit_message":"Stalker deobfuscation","measures":{"fuzzy_match_percent":81.636505,"total_code":2876860,"matched_code":2348568,"matched_code_percent":81.636505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5782,"matched_functions_percent":88.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T02:49:33Z","commit_sha":"9bbe7614a525784aff0b6a74bd710efd7afbc9a7","commit_message":"Move field E4 from properties to sub character","measures":{"fuzzy_match_percent":81.636505,"total_code":2876860,"matched_code":2348568,"matched_code_percent":81.636505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5782,"matched_functions_percent":88.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-27T02:33:59Z","commit_sha":"962e4075af3deb300e1f46270fa4c12e3b3c43cf","commit_message":"Creeper and Stalker deobfuscation","measures":{"fuzzy_match_percent":81.636505,"total_code":2876860,"matched_code":2348568,"matched_code_percent":81.636505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5782,"matched_functions_percent":88.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T20:48:19Z","commit_sha":"9a3933e9b9699588d6d0fa0935928f1882fb3266","commit_message":"map1_s03: func_800CE164","measures":{"fuzzy_match_percent":81.636505,"total_code":2876860,"matched_code":2348568,"matched_code_percent":81.636505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5782,"matched_functions_percent":88.61303,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T16:05:35Z","commit_sha":"7852bd128548906d4b20889508b0aa3cf4db2b12","commit_message":"maps: sharedFunc_800D99D0_1_s02\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":81.597015,"total_code":2876860,"matched_code":2347432,"matched_code_percent":81.597015,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5781,"matched_functions_percent":88.5977,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T14:33:59Z","commit_sha":"105b302dc8cc0b331313561823fa68897da30ec9","commit_message":"Stalker deobfuscation","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T13:38:18Z","commit_sha":"7a57d15c2b36a68b76c8f0f25456f045fa4bbab3","commit_message":"Restore decomp.me context fix","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T12:10:01Z","commit_sha":"5a12a743c98ec9f4d11985e2ec38bccb37fa5f8c","commit_message":"Hanged Scratcher deobfuscation","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T08:31:08Z","commit_sha":"ef57f671dc5f7c5888365cf952f5246f6668fac8","commit_message":"Air Screamer deobfuscation","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T06:36:36Z","commit_sha":"15223b5ebbd2bdda295c1cfcffb011cff152644b","commit_message":"\"Creaper\" -> \"Creeper\"","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T06:03:10Z","commit_sha":"1d1e4fc2fed7a400be2ae03af49ac5265b91f657","commit_message":"Name functions, start Air Screamer properties","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T03:56:36Z","commit_sha":"06831762fb8adc7e0dedde29b405a4b7109a2808","commit_message":"Creaper deobfuscation","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-26T02:52:40Z","commit_sha":"3020d70739dd0a4992b13386a184560f729931fb","commit_message":"Fix build","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T23:26:50Z","commit_sha":"f2d053315ba2f7a197187f3f20c79b271d19f393","commit_message":"map7_s01: sharedFunc_800D02E4_3_s03","measures":{"fuzzy_match_percent":81.37094,"total_code":2876860,"matched_code":2340928,"matched_code_percent":81.37094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5775,"matched_functions_percent":88.505745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T22:29:07Z","commit_sha":"0514d2d261c4fa45af914b9d3a9dbfa086a5250f","commit_message":"map3_s05: `sharedFunc_800CB6B0_0_s00_noParticles`, fix macro issue\n\n`#define playerPos` caused issue in decomp.me context when anything\nelse had `playerPos` in the name, like `sharedFunc_800D2FB4_0_s01`s\n`VECTOR3* playerPos` argument, it would spit a ton of errors\n\nKinda strange since m2ctx is meant to expand macros, not sure why it\nstill stayed around.\n\nRenamed just to fix it for now (could be worth adding same kind of\nplayerPos macro globally though, pachinko/bemani code did use a ton\nof macros for accessing their SYS_W stuff...)","measures":{"fuzzy_match_percent":81.36204,"total_code":2876860,"matched_code":2340672,"matched_code_percent":81.36204,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5774,"matched_functions_percent":88.49042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T22:04:21Z","commit_sha":"c4020bd786617b7bbe252db198a71e4a51abfc4b","commit_message":"maps: sharedFunc_800CB040_1_s05","measures":{"fuzzy_match_percent":81.349525,"total_code":2876860,"matched_code":2340312,"matched_code_percent":81.349525,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5773,"matched_functions_percent":88.4751,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T16:10:10Z","commit_sha":"51bdb2510b3409ca594705e28f19f9743b839c29","commit_message":"Add BLoodsucker properties and flags","measures":{"fuzzy_match_percent":81.12887,"total_code":2876860,"matched_code":2333964,"matched_code_percent":81.12887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5770,"matched_functions_percent":88.429115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T15:42:28Z","commit_sha":"3ae9f7ceed455521e8c42053359d09a20101f611","commit_message":"Tidying pass, Bloodsucker deobfuscation","measures":{"fuzzy_match_percent":81.12887,"total_code":2876860,"matched_code":2333964,"matched_code_percent":81.12887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5770,"matched_functions_percent":88.429115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T09:58:30Z","commit_sha":"2ef8039e53d6cebaaacf18537208f362a4ceaeaf","commit_message":"Fix build","measures":{"fuzzy_match_percent":81.12887,"total_code":2876860,"matched_code":2333964,"matched_code_percent":81.12887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5770,"matched_functions_percent":88.429115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T09:19:38Z","commit_sha":"80ab7c09fe66e408639d07295979d0d64cf451b1","commit_message":"Add character headers","measures":{"fuzzy_match_percent":81.12887,"total_code":2876860,"matched_code":2333964,"matched_code_percent":81.12887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5770,"matched_functions_percent":88.429115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T08:36:44Z","commit_sha":"74f91a6083fb02bbc3ffb35d67eaca0f11f59364","commit_message":"lib_unk: `func_8009E9D0` (#468)\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":81.12887,"total_code":2876860,"matched_code":2333964,"matched_code_percent":81.12887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5770,"matched_functions_percent":88.429115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T08:27:52Z","commit_sha":"b5b4e02bbd49544877ab8f0c3872963df69de6af","commit_message":"match: sharedFunc_800D1C0C_5_s00, sharedFunc_800D1CE4_5_s00 (#466)\n\n* added sharedFunc_800D1CE4_5_s00.h\n\n* added sharedFunc_800D1C0C_5_s00\n\n* updated global and sym files","measures":{"fuzzy_match_percent":81.11191,"total_code":2876860,"matched_code":2333476,"matched_code_percent":81.11191,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5769,"matched_functions_percent":88.413795,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T08:10:35Z","commit_sha":"2b78d499c3b972ce3a0335ac3852b22ef9965045","commit_message":"Air Screamer deobfuscation","measures":{"fuzzy_match_percent":81.06797,"total_code":2876860,"matched_code":2332212,"matched_code_percent":81.06797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5765,"matched_functions_percent":88.35249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T07:17:07Z","commit_sha":"2426804da6700a614bfc931b8eb1a31aae4f36b2","commit_message":"Start `e_ModelState` enum, rename character headers according to regular file naming conventions","measures":{"fuzzy_match_percent":81.06797,"total_code":2876860,"matched_code":2332212,"matched_code_percent":81.06797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5765,"matched_functions_percent":88.35249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T06:05:17Z","commit_sha":"729644e11288f14b7b80ad030f13aabb8e0058ea","commit_message":"Rename character headers","measures":{"fuzzy_match_percent":81.06797,"total_code":2876860,"matched_code":2332212,"matched_code_percent":81.06797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5765,"matched_functions_percent":88.35249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T04:54:47Z","commit_sha":"17f32e0e8f902b4449b84045a750398072591f76","commit_message":"Creaper deobduscation","measures":{"fuzzy_match_percent":81.06797,"total_code":2876860,"matched_code":2332212,"matched_code_percent":81.06797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5765,"matched_functions_percent":88.35249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-25T02:53:25Z","commit_sha":"cddef8333c787a616060815188f6fecf4dc9ad40","commit_message":"Tidying pass, Creaper deobfuscation","measures":{"fuzzy_match_percent":81.06797,"total_code":2876860,"matched_code":2332212,"matched_code_percent":81.06797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5765,"matched_functions_percent":88.35249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-24T21:34:02Z","commit_sha":"4362cf8a641bbedd821f3c64f1723f1bc04bf66d","commit_message":"bodyprog: func_8005801C","measures":{"fuzzy_match_percent":81.06797,"total_code":2876860,"matched_code":2332212,"matched_code_percent":81.06797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5765,"matched_functions_percent":88.35249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-24T21:26:52Z","commit_sha":"2ad214e392962b27f83bed33e7fe7170cc5882da","commit_message":"bin2c: read enum field choices from args/cfg instead of hardcoding\n\nuse `tools/bin2c.py @tools/bin2c.cfg ...` to make use of them","measures":{"fuzzy_match_percent":80.808105,"total_code":2876860,"matched_code":2324736,"matched_code_percent":80.808105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5764,"matched_functions_percent":88.337166,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-24T18:49:29Z","commit_sha":"4859d0580e62cc11705834289174384a02ddca76","commit_message":"objdiff: exclude konami GTE/matrix library\n\nMostly seems to be ASM so not much point including it in our match %\n\n(at some point it might be nice to go through and try documenting how the\nASM for it works though)","measures":{"fuzzy_match_percent":80.808105,"total_code":2876860,"matched_code":2324736,"matched_code_percent":80.808105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6525,"matched_functions":5764,"matched_functions_percent":88.337166,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-24T15:48:03Z","commit_sha":"dca9492d979759923075089b13e7d0f655b7a153","commit_message":"bodyprog: fixup lib_unk usages","measures":{"fuzzy_match_percent":80.76285,"total_code":2878472,"matched_code":2324736,"matched_code_percent":80.76285,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5764,"matched_functions_percent":88.18849,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T11:42:34Z","commit_sha":"ef299ae7777c5b1cbe5e431bcc72513b4370281c","commit_message":"Creaper progress","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T04:22:39Z","commit_sha":"f4e1d07782e932f1a78bfbfdc8618556b78feed9","commit_message":"Creaper progress","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T04:03:23Z","commit_sha":"73e52b17f6f6d2e8f6494c12a97ce7ac70ac177a","commit_message":"Creaper progress","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T03:35:34Z","commit_sha":"cd286063cadee1e11cb38d1870d525034d6d5b78","commit_message":"Demagic Creaper flags","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T03:08:50Z","commit_sha":"dd1a45a3ee4aa60a435c01cfb8b8951f3e35adf0","commit_message":"Demagic Creaper flags","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T03:03:47Z","commit_sha":"83d20564440c327809d076bfa013c5b7cc3142ea","commit_message":"Creaper progress, alphabetise character property structs","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T02:16:01Z","commit_sha":"3ec4148154e2ae776f39dd7b8a02ad69144d577c","commit_message":"Start `s_SubCharaPropertiesCreaper`","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T01:51:02Z","commit_sha":"4979ff5d8a547e26b352b567fc04fd56476aa9c9","commit_message":"Fix build","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-24T01:24:11Z","commit_sha":"9357af3e8c07b9ecb967531a5800b3cad8f2b6e8","commit_message":"Tidy up `sharedFunc_800D8F30_1_s02`","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T20:39:00Z","commit_sha":"8280a5f338ab16fbe1a423bbcdc548332e559c61","commit_message":"map0/1: migrate map1_s02 rodata, sort header decls, slight Makefile speedup\n\n- Minor speedup in Makefile by caching get_yaml_target.py results first\n\n- Fixed up some WorldObject sizes in sym files\n\n- Added addrs for some named data syms in header\n(since we do same for funcs figured it's worth it for named data too)","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T16:18:13Z","commit_sha":"2c0c66443b3bec635f8b296056fa3b9842274868","commit_message":"maps: sharedFunc_800D8F30_1_s02\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":80.75729,"total_code":2878472,"matched_code":2324576,"matched_code_percent":80.75729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5763,"matched_functions_percent":88.173195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T15:38:39Z","commit_sha":"fbd24b92ea51bf5f037cfa2a27669bafc12eb4d1","commit_message":"maps: sharedFunc_800D8684_1_s02","measures":{"fuzzy_match_percent":80.43879,"total_code":2878472,"matched_code":2315408,"matched_code_percent":80.43879,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5757,"matched_functions_percent":88.0814,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T15:24:11Z","commit_sha":"be5b6a9d5342bf3ce18aac8dc234c093279b1c06","commit_message":"Formatting, add `Math_Vector3MagCalc`","measures":{"fuzzy_match_percent":79.97604,"total_code":2878472,"matched_code":2302088,"matched_code_percent":79.97604,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5751,"matched_functions_percent":87.9896,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T14:56:54Z","commit_sha":"a7cee7ec58b1ddb683582aac81303c3d766f17f4","commit_message":"Format and demagic `sharedFunc_800D4924_0_s00`","measures":{"fuzzy_match_percent":79.97604,"total_code":2878472,"matched_code":2302088,"matched_code_percent":79.97604,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5751,"matched_functions_percent":87.9896,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T14:20:20Z","commit_sha":"864cc4c59b0950dd9657b413404d18f6a6251c9d","commit_message":"Update Puppet Nurse functions","measures":{"fuzzy_match_percent":79.97604,"total_code":2878472,"matched_code":2302088,"matched_code_percent":79.97604,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5751,"matched_functions_percent":87.9896,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T14:06:10Z","commit_sha":"09ed64ee41f2c176669c84801ddd6559fcfe4d4e","commit_message":"Formatting","measures":{"fuzzy_match_percent":79.97604,"total_code":2878472,"matched_code":2302088,"matched_code_percent":79.97604,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5751,"matched_functions_percent":87.9896,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T13:45:41Z","commit_sha":"8fd6eca1b70e7e770e05e732b9b6bfd5ecd2a15c","commit_message":"lib_unk: func_8009E2A0\n\nCo-authored-by: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":79.97604,"total_code":2878472,"matched_code":2302088,"matched_code_percent":79.97604,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5751,"matched_functions_percent":87.9896,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T12:59:10Z","commit_sha":"98f15cc34580048ae8ecfdc7c1ed57b084b28f97","commit_message":"sharedFunc_800D02E4_3_s03\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":79.967285,"total_code":2878472,"matched_code":2301836,"matched_code_percent":79.96729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5750,"matched_functions_percent":87.9743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T11:50:54Z","commit_sha":"b6236121b41dbc2128d6f1f01286ac110261bb4b","commit_message":"map1_s02: func_800DC1E0","measures":{"fuzzy_match_percent":79.940605,"total_code":2878472,"matched_code":2301068,"matched_code_percent":79.940605,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5747,"matched_functions_percent":87.9284,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T11:48:54Z","commit_sha":"87042e949b5f11ea839032cd9de7c53e87e8a135","commit_message":"MAP3_S04: func_800D2668","measures":{"fuzzy_match_percent":79.823875,"total_code":2878472,"matched_code":2297708,"matched_code_percent":79.82388,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5746,"matched_functions_percent":87.91309,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T10:03:09Z","commit_sha":"6cc0251cd6b3875212bb7ce51d5d56055e242a22","commit_message":"maps: sharedFunc_800D4924_0_s00\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":79.75329,"total_code":2878472,"matched_code":2295676,"matched_code_percent":79.75329,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5745,"matched_functions_percent":87.8978,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T09:35:29Z","commit_sha":"bd1ee155552e62d38538439e33cbf0ead4c975a9","commit_message":"maps: sharedFunc_800CCE60_1_s02","measures":{"fuzzy_match_percent":78.91284,"total_code":2878472,"matched_code":2271484,"matched_code_percent":78.91284,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5737,"matched_functions_percent":87.7754,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-23T02:31:00Z","commit_sha":"64a83c76588f6045c48cd69a15cf107fea010cdf","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":78.70078,"total_code":2878472,"matched_code":2265380,"matched_code_percent":78.70078,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5735,"matched_functions_percent":87.7448,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T22:28:30Z","commit_sha":"a4bd963a558eeed56f89d93e605bbac520c0288d","commit_message":"map7_s03: func_800DFB04","measures":{"fuzzy_match_percent":78.70078,"total_code":2878472,"matched_code":2265380,"matched_code_percent":78.70078,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5735,"matched_functions_percent":87.7448,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T22:17:14Z","commit_sha":"db09dbd8e50484b4420230640a1fb934bf715174","commit_message":"maps: share sharedFunc_800CBB30_1_s01","measures":{"fuzzy_match_percent":78.699394,"total_code":2878472,"matched_code":2265340,"matched_code_percent":78.699394,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5734,"matched_functions_percent":87.72949,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T22:07:36Z","commit_sha":"41a520035b250c60a7d8dc3f4e7fb1cc893d6b9c","commit_message":"maps: share sharedFunc_800CB884_1_s05","measures":{"fuzzy_match_percent":78.623245,"total_code":2878472,"matched_code":2263148,"matched_code_percent":78.62324,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5733,"matched_functions_percent":87.7142,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T22:01:47Z","commit_sha":"b3b836d3ced92ad7cb54e310017f348af2ec81a7","commit_message":"maps: fixups, share sharedFunc_800CABF8_1_s05","measures":{"fuzzy_match_percent":78.517075,"total_code":2878472,"matched_code":2260092,"matched_code_percent":78.517075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5731,"matched_functions_percent":87.6836,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T20:34:56Z","commit_sha":"17e797e2fa8ac093f4d834c4abd59a09590b344c","commit_message":"maps: sharedFunc_800D7EE8_1_s02\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":78.440926,"total_code":2878472,"matched_code":2257900,"matched_code_percent":78.440926,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5729,"matched_functions_percent":87.653,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T20:14:47Z","commit_sha":"7f8411855ac1edce2ecaf622a65517aca4564e28","commit_message":"maps: sharedFunc_800D82F0_1_s02\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":78.26166,"total_code":2878472,"matched_code":2252740,"matched_code_percent":78.26166,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5723,"matched_functions_percent":87.5612,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T18:50:09Z","commit_sha":"de89550669fbce799058a352a026da6a658a628c","commit_message":"maps: sharedFunc_800D9528_1_s02\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":78.070724,"total_code":2878472,"matched_code":2247244,"matched_code_percent":78.070724,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5717,"matched_functions_percent":87.4694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T18:49:31Z","commit_sha":"010d20557c7613a88d63a30d6d48005a8c77049a","commit_message":"maps: sharedFunc_800D9528_1_s02\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":78.070724,"total_code":2878472,"matched_code":2247244,"matched_code_percent":78.070724,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5717,"matched_functions_percent":87.4694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T10:38:52Z","commit_sha":"c331a25e7595d0d00c3ac10ff9243536d5181cce","commit_message":"share sharedFunc_800CBDA8_1_s02","measures":{"fuzzy_match_percent":77.94816,"total_code":2878472,"matched_code":2243716,"matched_code_percent":77.94816,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5711,"matched_functions_percent":87.3776,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T10:30:55Z","commit_sha":"5e87c9e1c5c015ff15714f3de45aacc223617e90","commit_message":"maps: sharedFunc_800CBA4C_1_s02","measures":{"fuzzy_match_percent":77.79947,"total_code":2878472,"matched_code":2239436,"matched_code_percent":77.79947,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5710,"matched_functions_percent":87.362305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T09:59:40Z","commit_sha":"844d5dd17e79aa110e8de6d7cb41f9e82ba06d45","commit_message":"map1_s02: func_800CBDA8","measures":{"fuzzy_match_percent":77.75861,"total_code":2878472,"matched_code":2238260,"matched_code_percent":77.75861,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5708,"matched_functions_percent":87.3317,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T09:42:15Z","commit_sha":"e7449ad6bc632761ac02ff2eb01c1c9718ab48b2","commit_message":"map4_s01: func_800CCF50\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":77.609924,"total_code":2878472,"matched_code":2233980,"matched_code_percent":77.609924,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5707,"matched_functions_percent":87.3164,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T04:24:37Z","commit_sha":"38391a40209e957d3091c77dea006f6713aee4e0","commit_message":"Minor deobfuscation","measures":{"fuzzy_match_percent":77.55684,"total_code":2878472,"matched_code":2232452,"matched_code_percent":77.55684,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5706,"matched_functions_percent":87.3011,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T02:41:00Z","commit_sha":"1a0d864980583e0e7eacd841d81a5a91aeaac9a7","commit_message":"Tidying pass, deobfuscation","measures":{"fuzzy_match_percent":77.55684,"total_code":2878472,"matched_code":2232452,"matched_code_percent":77.55684,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5706,"matched_functions_percent":87.3011,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-22T00:17:48Z","commit_sha":"b5d89afd10d51789c5f5e277c0ab39a0b4dd719f","commit_message":"maps: sharedFunc_800CF990_1_s05","measures":{"fuzzy_match_percent":77.55684,"total_code":2878472,"matched_code":2232452,"matched_code_percent":77.55684,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5706,"matched_functions_percent":87.3011,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T23:34:44Z","commit_sha":"9c352901e1e6e452f50686c2ad21a849cf87996a","commit_message":"maps: sharedFunc_800D2444_1_s05","measures":{"fuzzy_match_percent":77.46763,"total_code":2878472,"matched_code":2229884,"matched_code_percent":77.46763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5704,"matched_functions_percent":87.27051,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T21:32:00Z","commit_sha":"a97bdd3e00329edfc6cf64b7388eb7c48ba4e032","commit_message":"maps: Ai_Splithead_DamageTake","measures":{"fuzzy_match_percent":77.43261,"total_code":2878472,"matched_code":2228876,"matched_code_percent":77.43261,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5702,"matched_functions_percent":87.23991,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T21:05:32Z","commit_sha":"51b3db7bbde0ea56f679344c98424c46c13bb4ff","commit_message":"maps: sharedFunc_800D267C_1_s05","measures":{"fuzzy_match_percent":77.40148,"total_code":2878472,"matched_code":2227980,"matched_code_percent":77.40148,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5700,"matched_functions_percent":87.209305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T20:22:10Z","commit_sha":"f9d7df921a8f9b9e12e9b79dabee576412631705","commit_message":"maps: sharedFunc_800DA0D4_2_s00\n\nMatched as M2S02 func_800D88BC: https://decomp.me/scratch/AneH8\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":77.38703,"total_code":2878472,"matched_code":2227564,"matched_code_percent":77.38703,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5698,"matched_functions_percent":87.1787,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T19:55:41Z","commit_sha":"d938dcfca03b5f867135615ded527583361ebe90","commit_message":"maps: Small fixups","measures":{"fuzzy_match_percent":77.17511,"total_code":2878472,"matched_code":2221464,"matched_code_percent":77.17511,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5693,"matched_functions_percent":87.1022,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T19:45:28Z","commit_sha":"2254b43f923916aae7ed1220ca48c21eee87a1cd","commit_message":"map1_s05: func_800CABF8","measures":{"fuzzy_match_percent":77.17511,"total_code":2878472,"matched_code":2221464,"matched_code_percent":77.17511,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5693,"matched_functions_percent":87.1022,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T17:15:23Z","commit_sha":"e57969c61ddf2f8fa9b1ad7929ca8eae60b5d63c","commit_message":"bodyprog: include b_konami syms\n\nUsed to blow up before but seems to work fine now","measures":{"fuzzy_match_percent":77.13704,"total_code":2878472,"matched_code":2220368,"matched_code_percent":77.13703,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5692,"matched_functions_percent":87.08691,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T14:41:12Z","commit_sha":"ba4a62504074986a5e8b4cc9eca0a03c86c2efff","commit_message":"map1_s05: func_800CAAD0","measures":{"fuzzy_match_percent":77.13704,"total_code":2878472,"matched_code":2220368,"matched_code_percent":77.13703,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5692,"matched_functions_percent":87.08691,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T14:15:06Z","commit_sha":"087bbc5991740a137b1993a3e26828fee4a67267","commit_message":"maps: sharedFunc_800D4408_1_s05","measures":{"fuzzy_match_percent":77.126755,"total_code":2878472,"matched_code":2220072,"matched_code_percent":77.126755,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5691,"matched_functions_percent":87.0716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T14:02:36Z","commit_sha":"06ee60f2b302890e9f155a4182975f67f90e3a39","commit_message":"maps: sharedFunc_800CCE2C_1_s05","measures":{"fuzzy_match_percent":77.10869,"total_code":2878472,"matched_code":2219552,"matched_code_percent":77.10869,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5689,"matched_functions_percent":87.041,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T12:25:28Z","commit_sha":"7430ed4ba8c609f564e1bc76ad1caa19200ec70c","commit_message":"map1_s01: func_800CBB30","measures":{"fuzzy_match_percent":77.09062,"total_code":2878472,"matched_code":2219032,"matched_code_percent":77.09062,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5687,"matched_functions_percent":87.0104,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T12:03:42Z","commit_sha":"12ee240318207527dfc6f80f1f3c66e48195f23f","commit_message":"map4_s04: fixup, use setRGBC0","measures":{"fuzzy_match_percent":77.01447,"total_code":2878472,"matched_code":2216840,"matched_code_percent":77.01447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5686,"matched_functions_percent":86.99511,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T11:08:19Z","commit_sha":"49c0e209da63a5ff0b18e71631fa34fa366b4b67","commit_message":"map4_s04: func_800D1910\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":77.01447,"total_code":2878472,"matched_code":2216840,"matched_code_percent":77.01447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5686,"matched_functions_percent":86.99511,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T03:52:29Z","commit_sha":"40a1b845f559ac1a6ee5b36a3afca4b086ab28e1","commit_message":"Demagicking","measures":{"fuzzy_match_percent":76.91817,"total_code":2878472,"matched_code":2214068,"matched_code_percent":76.918175,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5685,"matched_functions_percent":86.979805,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-21T03:34:35Z","commit_sha":"e34737fdf2907f0a21d0f3f426643b4882d7e585","commit_message":"Tidying pass, demagicking","measures":{"fuzzy_match_percent":76.91817,"total_code":2878472,"matched_code":2214068,"matched_code_percent":76.918175,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5685,"matched_functions_percent":86.979805,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T20:19:45Z","commit_sha":"939835a147055cf7cf51b021cd7f52d1fde50434","commit_message":"MAP4_S03: func_800D5904","measures":{"fuzzy_match_percent":76.91817,"total_code":2878472,"matched_code":2214068,"matched_code_percent":76.918175,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5685,"matched_functions_percent":86.979805,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T19:42:39Z","commit_sha":"c81cd592d0defb7cd8980652bcc78808e8174f79","commit_message":"maps: sharedFunc_800D77D0_0_s01\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":76.91164,"total_code":2878472,"matched_code":2213880,"matched_code_percent":76.91164,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5684,"matched_functions_percent":86.96451,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T18:12:31Z","commit_sha":"fc0f0cfa920dc3ed0d0508f1cc0b29f62cff8366","commit_message":"maps: sharedFunc_800D7EBC_0_s01","measures":{"fuzzy_match_percent":76.758224,"total_code":2878472,"matched_code":2209464,"matched_code_percent":76.758224,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5678,"matched_functions_percent":86.8727,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T16:59:04Z","commit_sha":"74563afe838a21c487e9d0d053f2633a47722c4d","commit_message":"maps: sharedFunc_800D82B8_0_s01","measures":{"fuzzy_match_percent":76.60064,"total_code":2878472,"matched_code":2204928,"matched_code_percent":76.60064,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5672,"matched_functions_percent":86.78091,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T16:29:24Z","commit_sha":"29ba6ebd5602c803ea8692937e14afa1aa47404c","commit_message":"maps: sharedFunc_800D8888_2_s00\n\nMatched as M2S02 func_800D7070 on decomp.me: https://decomp.me/scratch/bfjKl\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":76.36802,"total_code":2878472,"matched_code":2198232,"matched_code_percent":76.36802,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5666,"matched_functions_percent":86.68911,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T14:52:45Z","commit_sha":"1720f9c2bab50db2aa1b10cb5d7440e788e694ac","commit_message":"maps: shared.h fixups","measures":{"fuzzy_match_percent":76.204735,"total_code":2878472,"matched_code":2193532,"matched_code_percent":76.204735,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5661,"matched_functions_percent":86.61261,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T14:48:10Z","commit_sha":"a2f4fdbdaa2ddeab016952af2515bdfda3ccd629","commit_message":"maps: sharedFunc_800D94EC_2_s00\n\nMatched as M2S02 func_800D7CD4 on decomp.me: https://decomp.me/scratch/PDfAD\n\nCo-authored-by: defcdgg <defcdgg@users.noreply.github.com>","measures":{"fuzzy_match_percent":76.204735,"total_code":2878472,"matched_code":2193532,"matched_code_percent":76.204735,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5661,"matched_functions_percent":86.61261,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T12:50:31Z","commit_sha":"fa259c135649b7b4bef9cd52b38fd8ba260cf710","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":76.02964,"total_code":2878472,"matched_code":2188492,"matched_code_percent":76.02965,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5656,"matched_functions_percent":86.53611,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T12:30:49Z","commit_sha":"f8e261fbc6cf89740cc2be946b785142598de7b1","commit_message":"Tidying pass, deobfuscation","measures":{"fuzzy_match_percent":76.02964,"total_code":2878472,"matched_code":2188492,"matched_code_percent":76.02965,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5656,"matched_functions_percent":86.53611,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T10:54:26Z","commit_sha":"f179e319e2a7901c3108001965e06cd890f35c48","commit_message":"maps: sharedFunc_800D6600_0_s01","measures":{"fuzzy_match_percent":76.02964,"total_code":2878472,"matched_code":2188492,"matched_code_percent":76.02965,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5656,"matched_functions_percent":86.53611,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T06:21:05Z","commit_sha":"08813beccf75b71915f4fca920612275227ecea9","commit_message":"bodyprog: minor map init system recognition","measures":{"fuzzy_match_percent":75.79619,"total_code":2878472,"matched_code":2181772,"matched_code_percent":75.79619,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5650,"matched_functions_percent":86.444305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T06:15:36Z","commit_sha":"e24d093a301a59fa1ab9b2d7fe047156d5f73710","commit_message":"bodyprog: minor map init system recognition","measures":{"fuzzy_match_percent":75.79619,"total_code":2878472,"matched_code":2181772,"matched_code_percent":75.79619,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5650,"matched_functions_percent":86.444305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-20T05:13:53Z","commit_sha":"1bc68e40fa7858e126e6fdc81a6fe7a15fd7ab39","commit_message":"Fix attempt\n\nApparently an update to one of the Splat dependencies got broken or something","measures":{"fuzzy_match_percent":75.79619,"total_code":2878472,"matched_code":2181772,"matched_code_percent":75.79619,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5650,"matched_functions_percent":86.444305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T17:24:28Z","commit_sha":"a930aca8b9eb008d2735e0ae9c44d99c41803512","commit_message":"maps: sharedFunc_800D2390_0_s01\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":75.79619,"total_code":2878472,"matched_code":2181772,"matched_code_percent":75.79619,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5650,"matched_functions_percent":86.444305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T09:25:52Z","commit_sha":"d77db8c7126992aeb4bb2f3c5fae5e81406f7590","commit_message":"lib_unk: match 2 funcs\n\nCo-authored-by: laura-a-n-n <laura-a-n-n@users.noreply.github.com>","measures":{"fuzzy_match_percent":75.48185,"total_code":2878472,"matched_code":2172724,"matched_code_percent":75.48185,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5644,"matched_functions_percent":86.35251,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T08:52:45Z","commit_sha":"8cf5a4834ebf7a0a526e5fcb67fac7abe3c0c372","commit_message":"Move `e_StringColorId`","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T08:33:20Z","commit_sha":"71d40a881dd67fac901fc4748a8e485e7db1f0b9","commit_message":"Demagicking","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T08:00:32Z","commit_sha":"7bc912c7ec04c59f7f2d5d6c39c6dbbbddba4ecd","commit_message":"Docs, demagicking","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T05:53:35Z","commit_sha":"980f866d47b90d0eaa6233f0a0d0ba01da4d48a9","commit_message":"Bodyprog: Chara init map load symbol recognition","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T04:33:34Z","commit_sha":"6566031b9877706bba46651e38f62e8677036727","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T03:15:10Z","commit_sha":"c9453faa1eeb03908b239d343f9cd49eb307a591","commit_message":"Formatting","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-19T03:12:17Z","commit_sha":"93d9fce11c064a8c958351a7e40f652dc8578c28","commit_message":"Fix formatting","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T23:21:27Z","commit_sha":"d7f541693eca081ccf25ba89866ed53436ad0203","commit_message":"lib_unk: func_8009E438\n\nCo-authored-by: laura-a-n-n <laura-a-n-n@users.noreply.github.com>","measures":{"fuzzy_match_percent":75.473656,"total_code":2878472,"matched_code":2172488,"matched_code_percent":75.473656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5642,"matched_functions_percent":86.32191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T22:45:24Z","commit_sha":"164ba88acdcf157c2995352fd3a57ef39b85021d","commit_message":"lib_unk: migrate data\n\n`tools/bin2c.py -s ctx.c -b assets/1ST/BODYPROG.BIN -t s_SysWork_2510 -o 0x8C88C -c 5`","measures":{"fuzzy_match_percent":75.46699,"total_code":2878472,"matched_code":2172296,"matched_code_percent":75.46699,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5641,"matched_functions_percent":86.30661,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T22:09:59Z","commit_sha":"f0aaa8937f47488927764ce20911954857af2e5f","commit_message":"lib_unk: match 3 funcs\n\nCo-authored-by: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>\nCo-authored-by: laura-a-n-n <laura-a-n-n@users.noreply.github.com>","measures":{"fuzzy_match_percent":75.46699,"total_code":2878472,"matched_code":2172296,"matched_code_percent":75.46699,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5641,"matched_functions_percent":86.30661,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T21:47:24Z","commit_sha":"27a4bb0378efd3a27d210f44adf75125d6469ee5","commit_message":"lib_unk: match 5 funcs\n\nCo-authored-by: Mc-muffin <Mc-muffin@users.noreply.github.com>\nCo-authored-by: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>\nCo-authored-by: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":75.461426,"total_code":2878472,"matched_code":2172136,"matched_code_percent":75.461426,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5638,"matched_functions_percent":86.26071,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T21:28:33Z","commit_sha":"1448fb359e999d0ca70d68b1cdb0599f8de5e976","commit_message":"Makefile: switch aspsx-version to 2.67 for lib_unk\n\nfunny number","measures":{"fuzzy_match_percent":75.45392,"total_code":2878472,"matched_code":2171920,"matched_code_percent":75.45392,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5633,"matched_functions_percent":86.18421,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T21:03:07Z","commit_sha":"203518f5b1a9649c47d78fda0d670c01157fa01d","commit_message":"Create lib_8009E198.c, add gcc-2.7.2-cdk, match 1 func\n\nCo-authored-by: Mc-muffin <Mc-muffin@users.noreply.github.com>\nCo-authored-by: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":75.45392,"total_code":2878472,"matched_code":2171920,"matched_code_percent":75.45392,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5633,"matched_functions_percent":86.18421,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T20:30:25Z","commit_sha":"3cf240fa2c0c2134b2232eb90661839ebca80492","commit_message":"format sym file","measures":{"fuzzy_match_percent":75.44683,"total_code":2878472,"matched_code":2171716,"matched_code_percent":75.44683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5632,"matched_functions_percent":86.16891,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T16:46:46Z","commit_sha":"aeb968fb0929d8a7324bb175d72b7a26248ff230","commit_message":"maps: sharedFunc_800D4E84_0_s01\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":74.52259,"total_code":2878472,"matched_code":2145112,"matched_code_percent":74.5226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5629,"matched_functions_percent":86.12302,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T14:11:09Z","commit_sha":"b757d0bfa2a8e5cdb47e6671393863ee4d5a0f58","commit_message":"Rng: fixup\n\nCloser to Rng_GenerateUInt","measures":{"fuzzy_match_percent":74.15267,"total_code":2878472,"matched_code":2134464,"matched_code_percent":74.15268,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5618,"matched_functions_percent":85.95471,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T13:34:23Z","commit_sha":"65077856248b2f403acf0aef2f3bb3ba29d9f994","commit_message":"map0_s01: func_800D4AEC\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":74.15267,"total_code":2878472,"matched_code":2134464,"matched_code_percent":74.15268,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5618,"matched_functions_percent":85.95471,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T12:33:40Z","commit_sha":"578a62026cf43af801c2188b26afeda107c901ee","commit_message":"Rng: Fixups, add `Rng_AddGeneratedUInt` workaround macro\n\nRng_AddGeneratedUInt fixes issue when `x + Rng_GenerateUInt(low, high)`\nis used with non-zero `low` value, with Rng_GenerateUInt that would have\ninsns in wrong order due to parens around Rng_GenerateUInt\n\nSadly removing those parens then causes issues if any other operation\nhappens with generated number, eg `rng() * 8`, when non-parens macro\ngets expanded that would end with `+ (low) * 8`..\n\nAdding new macro with parens around the value being added lets us\nworkaround that, not ideal, but better than needing to add parens around\neach rng call..","measures":{"fuzzy_match_percent":74.12071,"total_code":2878472,"matched_code":2133544,"matched_code_percent":74.12071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5617,"matched_functions_percent":85.939415,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T06:10:37Z","commit_sha":"62d665e5aa36c89f31347a1effc97ef808e10589","commit_message":"Header assignation + minor character load recognition","measures":{"fuzzy_match_percent":74.12071,"total_code":2878472,"matched_code":2133544,"matched_code_percent":74.12071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5617,"matched_functions_percent":85.939415,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-18T02:27:59Z","commit_sha":"6a37be0c4c6218bbbb3e4a769d7cbc12b142a8eb","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":74.12071,"total_code":2878472,"matched_code":2133544,"matched_code_percent":74.12071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5617,"matched_functions_percent":85.939415,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T21:14:15Z","commit_sha":"e65436142dbe7b2ff2b93ab67b5f29c386b537f4","commit_message":"maps: sharedFunc_800D31D0_0_s01","measures":{"fuzzy_match_percent":74.12071,"total_code":2878472,"matched_code":2133544,"matched_code_percent":74.12071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5617,"matched_functions_percent":85.939415,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T20:20:59Z","commit_sha":"e5af424c6cb07db38623a27d1d089091733e34d8","commit_message":"Rng: fixups","measures":{"fuzzy_match_percent":73.99398,"total_code":2878472,"matched_code":2129896,"matched_code_percent":73.99398,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5611,"matched_functions_percent":85.84762,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T19:52:11Z","commit_sha":"e9818e6f65c15003a5b413b825f096d1147ec47a","commit_message":"maps: sharedFunc_800D2FB4_0_s01\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":73.99398,"total_code":2878472,"matched_code":2129896,"matched_code_percent":73.99398,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5611,"matched_functions_percent":85.84762,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T19:08:26Z","commit_sha":"7d5eace8f9ece99af6425ffd59c54264581b3a1f","commit_message":"Rng: Move more TestProbabilityBits to GenerateUInt\n\nLooks like some of these should use different lower bounds, eg\n`(ptr->field_4A + Rng_GenerateUInt(0, 511)) - 255;`\nshould probably be (-255, 256) instead, but with that insns are in wrong\norder atm :/","measures":{"fuzzy_match_percent":73.881424,"total_code":2878472,"matched_code":2126656,"matched_code_percent":73.88142,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5605,"matched_functions_percent":85.75581,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T18:35:03Z","commit_sha":"456656b54d6c7dcf014e25befd108f7b122b6bd9","commit_message":"Rng: shorten Rng_GenerateInt params\n\nFew functions pass a different rand base input to Rng_GenerateInt,\nchanged those funcs to use a Rng_GenerateIntFromInput macro instead\n\nAdded Rng_GenerateUInt which treats the random base as unsigned, but\nstill returns signed value, seems that'll be needed for some other\nTestProbabilityBits / `Rng_Rand16 & XX` forms","measures":{"fuzzy_match_percent":73.881424,"total_code":2878472,"matched_code":2126656,"matched_code_percent":73.88142,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5605,"matched_functions_percent":85.75581,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T18:00:48Z","commit_sha":"5b408a7f2b852ee15e91c7f6da6c6a05b1277565","commit_message":"map7_s03: match 2 funcs","measures":{"fuzzy_match_percent":73.881424,"total_code":2878472,"matched_code":2126656,"matched_code_percent":73.88142,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5605,"matched_functions_percent":85.75581,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T16:21:17Z","commit_sha":"efc029c1ee48814e184cb30eeed7f558e4e12f3a","commit_message":"maps: sharedFunc_800DB9B8_2_s00","measures":{"fuzzy_match_percent":73.87892,"total_code":2878472,"matched_code":2126584,"matched_code_percent":73.87892,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5603,"matched_functions_percent":85.72521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T15:45:34Z","commit_sha":"282b426f3cbf0210c83a746fe13a5202e44ebcdc","commit_message":"maps: sharedFunc_800CCB8C_0_s01","measures":{"fuzzy_match_percent":73.69202,"total_code":2878472,"matched_code":2121204,"matched_code_percent":73.69201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5598,"matched_functions_percent":85.64871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T15:18:56Z","commit_sha":"147b1bfd8e16a0644d9f1c6e83d035001bfc969b","commit_message":"map4_s03: func_800D4924","measures":{"fuzzy_match_percent":73.57779,"total_code":2878472,"matched_code":2117916,"matched_code_percent":73.57779,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5596,"matched_functions_percent":85.61812,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T15:13:30Z","commit_sha":"b52c1ca92d081d2e714c02780a6e37fb0ef03161","commit_message":"Fixup","measures":{"fuzzy_match_percent":73.572365,"total_code":2878472,"matched_code":2117760,"matched_code_percent":73.572365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5595,"matched_functions_percent":85.60281,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T14:49:20Z","commit_sha":"6a6c8f78ea3c4378cf812de068e02f7c9c3cbb92","commit_message":"Rename Math_CheckAngleRange to Math_CheckSignedRange","measures":{"fuzzy_match_percent":73.572365,"total_code":2878472,"matched_code":2117760,"matched_code_percent":73.572365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5595,"matched_functions_percent":85.60281,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T13:18:37Z","commit_sha":"24f3335833d50718ad4b919906fc5c944ef01999","commit_message":"Fixups, replace some `Rng_TestProbabilityBits` -> `Rng_GenerateInt`\n\nModulo seems to work for most Rng_TestProbabilityBits except ones that\nadd/subtract a value afterward, haven't tried those ones with\nRng_GenerateInt yet though.","measures":{"fuzzy_match_percent":73.572365,"total_code":2878472,"matched_code":2117760,"matched_code_percent":73.572365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5595,"matched_functions_percent":85.60281,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T10:58:48Z","commit_sha":"9c58ae478f1658e8508d1c5ed86d5c1cc97e7681","commit_message":"Name local vars","measures":{"fuzzy_match_percent":73.572365,"total_code":2878472,"matched_code":2117760,"matched_code_percent":73.572365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5595,"matched_functions_percent":85.60281,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T09:27:20Z","commit_sha":"4174440bada5eecc500b0d4d0227ae1f537eeac1","commit_message":"map0_s00: func_800CC8FC\n\nThanks to @defcdgg for finishing match.\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":73.572365,"total_code":2878472,"matched_code":2117760,"matched_code_percent":73.572365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5595,"matched_functions_percent":85.60281,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T08:38:19Z","commit_sha":"bb93ed3d228ef04a9235658949fe4aa1466ab025","commit_message":"Demagicking","measures":{"fuzzy_match_percent":73.4926,"total_code":2878472,"matched_code":2115464,"matched_code_percent":73.49261,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5594,"matched_functions_percent":85.58752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T08:37:03Z","commit_sha":"91aa18f577cec6100079b5f8905bef3f32974794","commit_message":"bodyprog: Sd_AudioStop sym name","measures":{"fuzzy_match_percent":73.4926,"total_code":2878472,"matched_code":2115464,"matched_code_percent":73.49261,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5594,"matched_functions_percent":85.58752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T08:29:37Z","commit_sha":"e84d9d5a4c303dd51620793fc7d613aeaf5f6e2e","commit_message":"Fixups","measures":{"fuzzy_match_percent":73.48982,"total_code":2878472,"matched_code":2115384,"matched_code_percent":73.48982,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5593,"matched_functions_percent":85.57221,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T08:23:28Z","commit_sha":"642a8ed625436c1f7766acf7891d955c4d545b2b","commit_message":"maps: Chara_DamageTake\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: Ryan-Myers <Ryan-Myers@users.noreply.github.com>","measures":{"fuzzy_match_percent":73.48982,"total_code":2878472,"matched_code":2115384,"matched_code_percent":73.48982,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5593,"matched_functions_percent":85.57221,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T07:12:31Z","commit_sha":"0003f128b91afd2b3b0f80dc3651f6374d2ae89a","commit_message":"Demagicking, comments","measures":{"fuzzy_match_percent":73.37115,"total_code":2878472,"matched_code":2111968,"matched_code_percent":73.37115,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5586,"matched_functions_percent":85.46512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T05:30:57Z","commit_sha":"696b833215f88e975fe6c3c0420ae6012a61721d","commit_message":"Bodyprog: audio system recognition","measures":{"fuzzy_match_percent":73.37115,"total_code":2878472,"matched_code":2111968,"matched_code_percent":73.37115,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5586,"matched_functions_percent":85.46512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T03:42:41Z","commit_sha":"bfc91ef59718a262aac60726b4ace314fa017a08","commit_message":"Add missing event state enums","measures":{"fuzzy_match_percent":73.37393,"total_code":2878472,"matched_code":2112048,"matched_code_percent":73.37393,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5587,"matched_functions_percent":85.480415,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-17T03:36:01Z","commit_sha":"3104005d87821af52f4b331bfa693d1daa36f139","commit_message":"Tidying pass, demagicking","measures":{"fuzzy_match_percent":73.37393,"total_code":2878472,"matched_code":2112048,"matched_code_percent":73.37393,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5587,"matched_functions_percent":85.480415,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-16T15:28:12Z","commit_sha":"1721911a7d44115f79b4c895ccc6ef4b93ccfd2a","commit_message":"maps: sharedFunc_800D70C4_0_s00","measures":{"fuzzy_match_percent":73.139915,"total_code":2878472,"matched_code":2105312,"matched_code_percent":73.139915,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5582,"matched_functions_percent":85.403915,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-16T06:14:28Z","commit_sha":"4f0806b630ad2f2201e1e89111f45fe33e78829f","commit_message":"Bodyprog: audio system symbol recognition","measures":{"fuzzy_match_percent":72.24819,"total_code":2878472,"matched_code":2079644,"matched_code_percent":72.24819,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6536,"matched_functions":5573,"matched_functions_percent":85.26622,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-15T19:48:51Z","commit_sha":"57dd02b4ec7459fa98cde021029adac90e8c9a81","commit_message":"maps: sharedFunc_800D0690_1_s03","measures":{"fuzzy_match_percent":72.25899,"total_code":2879592,"matched_code":2080764,"matched_code_percent":72.25899,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5575,"matched_functions_percent":85.27073,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-15T18:24:57Z","commit_sha":"e0931bbd7ab8e1dfe521097cac3b34c2bf218f10","commit_message":"MAP4_S03: func_800D9BB0\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":72.18981,"total_code":2879592,"matched_code":2078772,"matched_code_percent":72.189804,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5569,"matched_functions_percent":85.178955,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-15T18:12:18Z","commit_sha":"c9cc4b24d7bf36878e59493e806b6d20ba860a30","commit_message":"MAP6_S02: func_800D1718","measures":{"fuzzy_match_percent":72.11702,"total_code":2879592,"matched_code":2076676,"matched_code_percent":72.11703,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5568,"matched_functions_percent":85.16366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-15T12:02:57Z","commit_sha":"aa25de3725f8f86a72bb99939ed3287479f85b87","commit_message":"maps: sharedFunc_800D603C_2_s00","measures":{"fuzzy_match_percent":72.08327,"total_code":2879592,"matched_code":2075704,"matched_code_percent":72.08327,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5567,"matched_functions_percent":85.14836,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-15T09:12:33Z","commit_sha":"4acf01c7712db2120fa4b612c3b1f23d70b1fb2d","commit_message":"Demagicking","measures":{"fuzzy_match_percent":71.915886,"total_code":2879592,"matched_code":2070884,"matched_code_percent":71.915886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5562,"matched_functions_percent":85.071884,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-15T04:33:36Z","commit_sha":"ad8ec5077de480a9df803ea22ac66fd42faf876b","commit_message":"Demagicking","measures":{"fuzzy_match_percent":71.915886,"total_code":2879592,"matched_code":2070884,"matched_code_percent":71.915886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5562,"matched_functions_percent":85.071884,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-15T04:13:23Z","commit_sha":"5c1187c7f80d04d19c6294037c620448ee78d768","commit_message":"Demagicking","measures":{"fuzzy_match_percent":71.915886,"total_code":2879592,"matched_code":2070884,"matched_code_percent":71.915886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5562,"matched_functions_percent":85.071884,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-15T02:46:30Z","commit_sha":"50726a2c0de1c902febff3f460eb89ce077aeb06","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":71.915886,"total_code":2879592,"matched_code":2070884,"matched_code_percent":71.915886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5562,"matched_functions_percent":85.071884,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T22:56:27Z","commit_sha":"97fc20dea693591e3acb6aab329d74152b5eb42a","commit_message":"MAP6_S04: func_800D87B0","measures":{"fuzzy_match_percent":71.915886,"total_code":2879592,"matched_code":2070884,"matched_code_percent":71.915886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5562,"matched_functions_percent":85.071884,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T22:24:07Z","commit_sha":"fc1e243aafda335283cd18d0b4a3e52e4e3bcf45","commit_message":"maps: sharedFunc_800D46C8_2_s00","measures":{"fuzzy_match_percent":71.91061,"total_code":2879592,"matched_code":2070732,"matched_code_percent":71.9106,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5561,"matched_functions_percent":85.056595,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T22:05:43Z","commit_sha":"5ed977f6398666c4e2eeda2e70bd3288224784e3","commit_message":"Match: sharedFunc_800D0514_5_s00 (#463)\n\n* sharedFunc_800D0514_5_s00 definition\n\n* Replace include_asm directives\n\n* proper replacement of directives\n\n* renamed function name in header","measures":{"fuzzy_match_percent":71.74044,"total_code":2879592,"matched_code":2065832,"matched_code_percent":71.74044,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5556,"matched_functions_percent":84.98012,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T20:02:05Z","commit_sha":"788b00040568464b7f49a4d534dedadae08c3f21","commit_message":"MAP6_S04: func_800DB6FC","measures":{"fuzzy_match_percent":71.71988,"total_code":2879592,"matched_code":2065240,"matched_code_percent":71.71989,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5554,"matched_functions_percent":84.949524,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T17:41:21Z","commit_sha":"89afacd748018f113dc6cf8ba59f8bf950e10db1","commit_message":"bodyprog: func_8005AC50\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":71.71725,"total_code":2879592,"matched_code":2065164,"matched_code_percent":71.71725,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5553,"matched_functions_percent":84.93423,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T17:08:53Z","commit_sha":"f8b1ac1262417ce1d8a1c85c7443fda1fc950096","commit_message":"MAP6_S02: func_800D1D40","measures":{"fuzzy_match_percent":71.67001,"total_code":2879592,"matched_code":2063804,"matched_code_percent":71.67001,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5552,"matched_functions_percent":84.91894,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T16:11:58Z","commit_sha":"79d53635efd4996b84431841c9a69b9797a352fd","commit_message":"maps: sharedFunc_800D4A9C_2_s00","measures":{"fuzzy_match_percent":71.65696,"total_code":2879592,"matched_code":2063428,"matched_code_percent":71.65695,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5551,"matched_functions_percent":84.90364,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T15:36:45Z","commit_sha":"4ded7a1e207080a92208c95eb392fef12bf1e8e3","commit_message":"maps: sharedFunc_800D6504_2_s00","measures":{"fuzzy_match_percent":71.485405,"total_code":2879592,"matched_code":2058488,"matched_code_percent":71.485405,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5546,"matched_functions_percent":84.82716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T14:48:26Z","commit_sha":"ac308456a9809eac9d40a78d47bcb9bf48cb9617","commit_message":"maps: sharedFunc_800D4E78_2_s00","measures":{"fuzzy_match_percent":71.28052,"total_code":2879592,"matched_code":2052588,"matched_code_percent":71.28052,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5541,"matched_functions_percent":84.75069,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T12:47:35Z","commit_sha":"aecbec840b16e0bbd7f26e4da7af24b292757eb9","commit_message":"Demagicking","measures":{"fuzzy_match_percent":71.10549,"total_code":2879592,"matched_code":2047548,"matched_code_percent":71.10549,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5536,"matched_functions_percent":84.67421,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T11:20:42Z","commit_sha":"1f193de22e907e11c5d0192bc921cfd917e2ce83","commit_message":"maps: sharedFunc_800D0F28_3_s03\n\nTODO: Make `Chara_Bloodsucker` split in map3_s03, combine funcs into\nChara_Bloodsucker.c","measures":{"fuzzy_match_percent":71.10549,"total_code":2879592,"matched_code":2047548,"matched_code_percent":71.10549,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5536,"matched_functions_percent":84.67421,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T10:29:51Z","commit_sha":"ba1652359a4812f5c84ba4d6038e154dfe759499","commit_message":"maps: sharedFunc_800D6970_0_s00","measures":{"fuzzy_match_percent":71.06548,"total_code":2879592,"matched_code":2046396,"matched_code_percent":71.06548,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5534,"matched_functions_percent":84.64362,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T09:51:51Z","commit_sha":"bfd96c4a0d9b459b43babb748bc3d94fbc98924b","commit_message":"maps: match/share 1 func","measures":{"fuzzy_match_percent":70.47915,"total_code":2879592,"matched_code":2029512,"matched_code_percent":70.47915,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5525,"matched_functions_percent":84.50597,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T09:38:14Z","commit_sha":"74b02274030d8a9ad589eb66ac676b077b967802","commit_message":"maps: match/share 2 funcs, s_SubCharacter field_C8/field_D4 split","measures":{"fuzzy_match_percent":70.455536,"total_code":2879592,"matched_code":2028832,"matched_code_percent":70.455536,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5520,"matched_functions_percent":84.42949,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T04:17:03Z","commit_sha":"7a55e0292783f911551e7c3cce445a601504d900","commit_message":"Name vars","measures":{"fuzzy_match_percent":70.407196,"total_code":2879592,"matched_code":2027440,"matched_code_percent":70.407196,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5508,"matched_functions_percent":84.24594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T03:39:09Z","commit_sha":"a017ec9639a914b6738935fe6dd5618083f77377","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":70.407196,"total_code":2879592,"matched_code":2027440,"matched_code_percent":70.407196,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5508,"matched_functions_percent":84.24594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-14T03:05:59Z","commit_sha":"f02e4cb7e692617b49cc700e9b3b84c8573d8247","commit_message":"Demagicking","measures":{"fuzzy_match_percent":70.407196,"total_code":2879592,"matched_code":2027440,"matched_code_percent":70.407196,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5508,"matched_functions_percent":84.24594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T22:52:48Z","commit_sha":"e44f85228402cdba85ea4e0e7dc73d9961258421","commit_message":"MAP4_S03: func_800D7718","measures":{"fuzzy_match_percent":70.407196,"total_code":2879592,"matched_code":2027440,"matched_code_percent":70.407196,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5508,"matched_functions_percent":84.24594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T22:12:12Z","commit_sha":"b735fd6535e6786dd20121f5bd6626337cf516aa","commit_message":"MAP4_S02: func_800EA3F0\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":70.398865,"total_code":2879592,"matched_code":2027200,"matched_code_percent":70.398865,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5507,"matched_functions_percent":84.23065,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T21:38:15Z","commit_sha":"2aadf5f15023e1b0c69c3b771e7c0fc9be39b6da","commit_message":"MAP7_S03: func_800E972C","measures":{"fuzzy_match_percent":70.342186,"total_code":2879592,"matched_code":2025568,"matched_code_percent":70.342186,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5506,"matched_functions_percent":84.215355,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T21:23:38Z","commit_sha":"1b8afa5d7772cebd8334fe3c9c9bef9eb6d79a7d","commit_message":"MAP7_S03: func_800E98EC","measures":{"fuzzy_match_percent":70.330795,"total_code":2879592,"matched_code":2025240,"matched_code_percent":70.330795,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5505,"matched_functions_percent":84.20006,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T21:04:43Z","commit_sha":"84c9b24483e837e85a11f81d80a41fd0fca2327b","commit_message":"MAP7_S01: func_800DDCD4\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":70.31427,"total_code":2879592,"matched_code":2024764,"matched_code_percent":70.31426,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5504,"matched_functions_percent":84.18477,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T20:49:36Z","commit_sha":"ab370a1d53f171d1d1a7b8f3d7b1a12fee8546f5","commit_message":"maps: sharedFunc_800D54A8_0_s00\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":70.1648,"total_code":2879592,"matched_code":2020460,"matched_code_percent":70.1648,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5503,"matched_functions_percent":84.16947,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T17:55:45Z","commit_sha":"8e37ee2bb483c2f3f2cac312c73e53abeaffd5a4","commit_message":"maps: sharedFunc_800D492C_0_s00\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":69.63473,"total_code":2879592,"matched_code":2005196,"matched_code_percent":69.63472,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5494,"matched_functions_percent":84.031815,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T16:50:51Z","commit_sha":"ef6b12abe472705cf1e684bc056e08a36fff91dc","commit_message":"map0_s00: sharedFunc_800D3EF4_0_s00","measures":{"fuzzy_match_percent":69.04089,"total_code":2879592,"matched_code":1988096,"matched_code_percent":69.04089,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5485,"matched_functions_percent":83.89416,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T14:50:04Z","commit_sha":"c14fdb0446488adda73d328c04aefb389a872ef1","commit_message":"Name local vars","measures":{"fuzzy_match_percent":68.950325,"total_code":2879592,"matched_code":1985488,"matched_code_percent":68.950325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5484,"matched_functions_percent":83.87886,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T12:17:45Z","commit_sha":"f5003c56a91b8a1ea2266a225c7982f789f74832","commit_message":"simplify condition check in sharedFunc_800D3308_0_s00","measures":{"fuzzy_match_percent":68.950325,"total_code":2879592,"matched_code":1985488,"matched_code_percent":68.950325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5484,"matched_functions_percent":83.87886,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T12:01:54Z","commit_sha":"d8ea7d89729b79de0f71a04aa2bd202a817caae8","commit_message":"maps: sharedFunc_800D3308_0_s00","measures":{"fuzzy_match_percent":68.950325,"total_code":2879592,"matched_code":1985488,"matched_code_percent":68.950325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5484,"matched_functions_percent":83.87886,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T11:53:08Z","commit_sha":"689f59d0154ead28f7f92d4ce95944e00199d0f5","commit_message":"map6_s04: func_800E0204\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":68.29148,"total_code":2879592,"matched_code":1966516,"matched_code_percent":68.29148,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5475,"matched_functions_percent":83.7412,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T10:31:31Z","commit_sha":"f4f2afd0a53b28772cb628b044a14c14b876ecf0","commit_message":"maps: share 2 funcs, fixups","measures":{"fuzzy_match_percent":68.283844,"total_code":2879592,"matched_code":1966296,"matched_code_percent":68.28384,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5474,"matched_functions_percent":83.725914,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-13T05:30:55Z","commit_sha":"73950556438899dbed04a268bd0cbce95be2724a","commit_message":"Bodyprog: Audio system recognition\n\nLikely my worst job at the moment. I got way too confused as a lot of stuff I worked into mixes information of VAB file format and previously investigated things as well the documentation confused me (I'm too dumb :p)","measures":{"fuzzy_match_percent":68.09506,"total_code":2879592,"matched_code":1960860,"matched_code_percent":68.09506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5465,"matched_functions_percent":83.58826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T15:36:11Z","commit_sha":"60a761b9c13afebc135bcacb947587e9e3bc345e","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":68.09506,"total_code":2879592,"matched_code":1960860,"matched_code_percent":68.09506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5465,"matched_functions_percent":83.58826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T14:29:51Z","commit_sha":"07bdb95e90617780331472647a9bf1ec06fa4c9b","commit_message":"MAP6_S04: func_800E5F54","measures":{"fuzzy_match_percent":68.09506,"total_code":2879592,"matched_code":1960860,"matched_code_percent":68.09506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5465,"matched_functions_percent":83.58826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T07:54:47Z","commit_sha":"1093eafeae2c1bddeaa38a4678eedb1fd1a29983","commit_message":"MAP3_S04: func_800D3DA4","measures":{"fuzzy_match_percent":68.05867,"total_code":2879592,"matched_code":1959812,"matched_code_percent":68.05867,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5464,"matched_functions_percent":83.57296,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T07:50:45Z","commit_sha":"4b69f7543e2222eb4b84716e9794216e59254dfc","commit_message":"map0_s00: func_800CD8E8\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":68.00463,"total_code":2879592,"matched_code":1958256,"matched_code_percent":68.00463,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5463,"matched_functions_percent":83.55766,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T06:55:25Z","commit_sha":"bb67b2bc72a10f9a1ebdb1334f84f2f6a985ef83","commit_message":"gpu.h: add `setPolyFT4TPage`, minor fixups","measures":{"fuzzy_match_percent":67.94004,"total_code":2879592,"matched_code":1956396,"matched_code_percent":67.94005,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5462,"matched_functions_percent":83.542366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T06:51:29Z","commit_sha":"a6f2d1e69a2de3032c27de7701f0e97d06a4b2e5","commit_message":"game.h: add `ORDERING_TABLE_SIZE`","measures":{"fuzzy_match_percent":67.94004,"total_code":2879592,"matched_code":1956396,"matched_code_percent":67.94005,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5462,"matched_functions_percent":83.542366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T06:36:27Z","commit_sha":"29127cece56615a2ea2fd0a81d95996d04c414a3","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":67.94004,"total_code":2879592,"matched_code":1956396,"matched_code_percent":67.94005,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5462,"matched_functions_percent":83.542366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T06:04:14Z","commit_sha":"0668f12dcabc591f09927f24e6b3b1d3584e716f","commit_message":"Bodyprog: Audio system corrections and recognition","measures":{"fuzzy_match_percent":67.94004,"total_code":2879592,"matched_code":1956396,"matched_code_percent":67.94005,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5462,"matched_functions_percent":83.542366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":150,"complete_units":0}},{"timestamp":"2025-12-12T05:21:57Z","commit_sha":"9bca9abc78ceb6e85c4160013ec418837e2bea52","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":67.94004,"total_code":2879592,"matched_code":1956396,"matched_code_percent":67.94005,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5462,"matched_functions_percent":83.542366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-11T21:01:23Z","commit_sha":"0144eff5bc1bdda086074f938b10cad267fff99c","commit_message":"match sharedFunc_800D029C_5_s00, make related functions shared","measures":{"fuzzy_match_percent":67.94004,"total_code":2879592,"matched_code":1956396,"matched_code_percent":67.94005,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5462,"matched_functions_percent":83.542366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-11T20:59:34Z","commit_sha":"f8e3f89897a77693985dc910b33376b2cf9508c7","commit_message":"map0_s00: func_800CD1F4\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":67.927956,"total_code":2879592,"matched_code":1956048,"matched_code_percent":67.927956,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5461,"matched_functions_percent":83.52707,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-11T12:00:03Z","commit_sha":"6bbddf6c373865d4caec73095465f79b838b568f","commit_message":"Minor matches, add `func_rater.py` to rate difficulty of functions\n\nBased on idea from ff7-decomp repo, script rates difficulty of each\nnonmatched func and displays them in descending order.\n\nRun `./tools/func_rater.py` from main repo folder to show the list.\n\nThis just uses a simple/naive way of determining difficulty, based on how\nmany of these get used in the func:\n\n- GTE opcodes\n- GsOUT_PACKET_P usages\n- Backward loops\n- Data variables that haven't been declared in any header\n- Number of lines/instructions\n\nNot really sure if the scores it gives are that accurate, but looks like\nmost of the lower scoring ones there should be easy matches.","measures":{"fuzzy_match_percent":67.86614,"total_code":2879592,"matched_code":1954268,"matched_code_percent":67.86614,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5460,"matched_functions_percent":83.51177,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-11T06:35:23Z","commit_sha":"392f676b9e9618ebacdc431ad8f1c096a1df344b","commit_message":"Bodyprog: Audio system recognition premature corrections\n\nFound out that supposedly loads BGM key sounds in reality was loading the key notes (or the KDT file), also an irregularity with the first audio files made me take the decision of remove an enum. Also fixed an incorrect missmatch. This changes are premature as some comments require corrections and also fixed the incorrect match.","measures":{"fuzzy_match_percent":67.86267,"total_code":2879592,"matched_code":1954168,"matched_code_percent":67.86267,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5457,"matched_functions_percent":83.46589,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T22:27:33Z","commit_sha":"ccc45ed24d6e23c57d4356355196d3c094ffe0c6","commit_message":"bodyprog: add debug-only `Gfx_DebugFixedPointPrint` func\n\nFunc doesn't exist in our build but does exist in 98-12-16.\n\nGives some context for how the `func_800321EC` func that was included is\nmeant to be used.","measures":{"fuzzy_match_percent":67.86267,"total_code":2879592,"matched_code":1954168,"matched_code_percent":67.86267,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5457,"matched_functions_percent":83.46589,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T19:27:08Z","commit_sha":"ebf1faf34782999659ac152790e6ba3ed90e876c","commit_message":"maps: WorldObject func names, add map1_s04 debug code","measures":{"fuzzy_match_percent":67.86267,"total_code":2879592,"matched_code":1954168,"matched_code_percent":67.86267,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5457,"matched_functions_percent":83.46589,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T17:13:37Z","commit_sha":"7bd8c0ec9fd6aacbb35a58f6fa23920a96e64269","commit_message":"maps: sharedFunc_800CE688_1_s03","measures":{"fuzzy_match_percent":67.86267,"total_code":2879592,"matched_code":1954168,"matched_code_percent":67.86267,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5457,"matched_functions_percent":83.46589,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T14:07:45Z","commit_sha":"a86b8e7a29085475ea389fa6c1b20ca3bf7177fe","commit_message":"Update `Rng_RandQ12` return type\n\nCo-Authored-By: pseregiet <patryk.seregiet@gmail.com>\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":67.56124,"total_code":2879592,"matched_code":1945488,"matched_code_percent":67.56124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5452,"matched_functions_percent":83.38941,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T14:06:17Z","commit_sha":"66e6ae3c7c19fbd7ec1e5c043e9516ef292350e4","commit_message":"`func_80080514` -> `Rng_RandQ12`\n\nCo-Authored-By: pseregiet <patryk.seregiet@gmail.com>\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":67.56124,"total_code":2879592,"matched_code":1945488,"matched_code_percent":67.56124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5452,"matched_functions_percent":83.38941,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T13:58:00Z","commit_sha":"61d89ba3752c8ea437345a3eb2e58deea234597d","commit_message":"Use conversion macro","measures":{"fuzzy_match_percent":67.56124,"total_code":2879592,"matched_code":1945488,"matched_code_percent":67.56124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5452,"matched_functions_percent":83.38941,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T13:54:19Z","commit_sha":"67129bf67745877282555654fe4011d8b3e179ee","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":67.56124,"total_code":2879592,"matched_code":1945488,"matched_code_percent":67.56124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5452,"matched_functions_percent":83.38941,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T12:48:39Z","commit_sha":"c3a7cfc10f25452e345a66d65f2cf678edf7f120","commit_message":"sharedFunc_800DF358_2_s00","measures":{"fuzzy_match_percent":67.56124,"total_code":2879592,"matched_code":1945488,"matched_code_percent":67.56124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5452,"matched_functions_percent":83.38941,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T12:24:25Z","commit_sha":"d6ff3e358ef0ed50d593aace6d14409b62562559","commit_message":"MAP2_S00: func_800DD834","measures":{"fuzzy_match_percent":67.51956,"total_code":2879592,"matched_code":1944288,"matched_code_percent":67.51956,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5447,"matched_functions_percent":83.31294,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T11:56:30Z","commit_sha":"0e3ec3f177aeba2b7e6b38592e63c5485b9bd6b4","commit_message":"maps: sharedFunc_800CEFF4_0_s00","measures":{"fuzzy_match_percent":67.499146,"total_code":2879592,"matched_code":1943700,"matched_code_percent":67.499146,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5446,"matched_functions_percent":83.297646,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T09:13:23Z","commit_sha":"2194536c25af2258ecd1a0a18d2a911b2bcba5b5","commit_message":"MAP5_S02: func_800D68FC","measures":{"fuzzy_match_percent":66.85336,"total_code":2879592,"matched_code":1925104,"matched_code_percent":66.85336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5436,"matched_functions_percent":83.14469,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T08:49:23Z","commit_sha":"669d39de6c956937e131f68fd451d53a28806f51","commit_message":"MAP6_S01: use postbuild.py to fill in garbage data","measures":{"fuzzy_match_percent":66.797935,"total_code":2879592,"matched_code":1923508,"matched_code_percent":66.797935,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5435,"matched_functions_percent":83.1294,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T08:42:28Z","commit_sha":"e6000c6c0cf419dd051ad83334cffb2ec10b2d7e","commit_message":"MAP6_S01: func_800D30DC","measures":{"fuzzy_match_percent":66.797935,"total_code":2879592,"matched_code":1923508,"matched_code_percent":66.797935,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5435,"matched_functions_percent":83.1294,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T08:20:07Z","commit_sha":"bf9b99a8397f643cb36509e2519d025e1fc973d6","commit_message":"MAP7_S03/BloodyIncubator: func_800D38D8","measures":{"fuzzy_match_percent":66.766266,"total_code":2879592,"matched_code":1922596,"matched_code_percent":66.766266,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5434,"matched_functions_percent":83.1141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T05:54:38Z","commit_sha":"04bc89658727e55d0a860532565332d781686c51","commit_message":"Bodyprog: sound system recognition","measures":{"fuzzy_match_percent":66.7414,"total_code":2879592,"matched_code":1921880,"matched_code_percent":66.7414,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5433,"matched_functions_percent":83.09881,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T03:52:48Z","commit_sha":"79065c659e15abaab13406429d8958fb5a682ea0","commit_message":"Fixups, deobfuscation","measures":{"fuzzy_match_percent":66.7414,"total_code":2879592,"matched_code":1921880,"matched_code_percent":66.7414,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5433,"matched_functions_percent":83.09881,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T01:32:15Z","commit_sha":"7c9736f506681f9716b8cc1c5618761b84f958f9","commit_message":"map5_s03: Map_WorldObjectsUpdate","measures":{"fuzzy_match_percent":66.7414,"total_code":2879592,"matched_code":1921880,"matched_code_percent":66.7414,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5433,"matched_functions_percent":83.09881,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T00:27:28Z","commit_sha":"88120d47a6324ab815331783b6797c3d42874d6d","commit_message":"maps: share 2 funcs","measures":{"fuzzy_match_percent":66.69556,"total_code":2879592,"matched_code":1920560,"matched_code_percent":66.69556,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5432,"matched_functions_percent":83.08351,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-10T00:08:05Z","commit_sha":"8f962253d662ae7ec90cf61b2b664422964140cf","commit_message":"map4: match/share Map_RoomIdxGet, share 1 func\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":66.62499,"total_code":2879592,"matched_code":1918528,"matched_code_percent":66.62499,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5428,"matched_functions_percent":83.02233,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T18:16:27Z","commit_sha":"34b2118bc1059866813d9d8880773c14ccc477d7","commit_message":"MAP2_S00: func_800E9DD8\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":66.589714,"total_code":2879592,"matched_code":1917512,"matched_code_percent":66.589714,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5426,"matched_functions_percent":82.991745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T17:07:19Z","commit_sha":"c2f74af12a52ae1866dace68c7cbf40c36f12435","commit_message":"maps: match/share sharedFunc_800CEFD0_1_s02\n\nThanks @belek666 for getting the match!\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>","measures":{"fuzzy_match_percent":66.53262,"total_code":2879592,"matched_code":1915868,"matched_code_percent":66.532616,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5425,"matched_functions_percent":82.97644,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T14:36:14Z","commit_sha":"0580b5d33909852be9ded7fc0bbed34ea811e298","commit_message":"Fixups","measures":{"fuzzy_match_percent":66.017685,"total_code":2879592,"matched_code":1901040,"matched_code_percent":66.017685,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5411,"matched_functions_percent":82.762314,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T13:02:28Z","commit_sha":"ccf645963f9ea08233365133d8e92b0f7e393f4a","commit_message":"MAP2_S00: func_800DD588\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":66.017685,"total_code":2879592,"matched_code":1901040,"matched_code_percent":66.017685,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5411,"matched_functions_percent":82.762314,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T12:35:22Z","commit_sha":"795824cc0c6ca65313771c62847a16eb34e544fa","commit_message":"maps: fix mismatch","measures":{"fuzzy_match_percent":65.993935,"total_code":2879592,"matched_code":1900356,"matched_code_percent":65.993935,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5410,"matched_functions_percent":82.74702,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T12:25:25Z","commit_sha":"814fc0525df7ab9d8b2821a9178d8c52092a46af","commit_message":"maps: fixups","measures":{"fuzzy_match_percent":65.99368,"total_code":2879592,"matched_code":1895656,"matched_code_percent":65.83071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5405,"matched_functions_percent":82.67054,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T12:20:25Z","commit_sha":"686ad67da72ce1d4ada6c49d4a163804441b39da","commit_message":"maps: share 5 funcs","measures":{"fuzzy_match_percent":65.993935,"total_code":2879592,"matched_code":1900356,"matched_code_percent":65.993935,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5410,"matched_functions_percent":82.74702,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T11:50:46Z","commit_sha":"c68835e18cc0a1c5c40c7adda4e0f2cca686fc9c","commit_message":"maps: match/share 2 funcs","measures":{"fuzzy_match_percent":65.446075,"total_code":2879592,"matched_code":1884580,"matched_code_percent":65.446075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5390,"matched_functions_percent":82.44112,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T08:47:59Z","commit_sha":"1ccc3fc9b3d440fcbca6e6e110204198e5365921","commit_message":"MAP2_S00: func_800D6A7C\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":65.14881,"total_code":2879592,"matched_code":1876020,"matched_code_percent":65.14881,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5380,"matched_functions_percent":82.28816,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T08:35:27Z","commit_sha":"7ec7d045216a0b7fb233333a0b3ce9acc893971b","commit_message":"MAP2_S00: func_800DD534","measures":{"fuzzy_match_percent":65.11617,"total_code":2879592,"matched_code":1875080,"matched_code_percent":65.116165,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5379,"matched_functions_percent":82.272865,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T08:01:14Z","commit_sha":"7429df5afc5a5995db4bce02e74deb58d2c4cba5","commit_message":"bodyprog: update D_800C3E18 size","measures":{"fuzzy_match_percent":65.11325,"total_code":2879592,"matched_code":1874996,"matched_code_percent":65.11325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5378,"matched_functions_percent":82.25757,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T06:24:19Z","commit_sha":"f4df7888fb56be115c262d9ff9c2ad0425875dd8","commit_message":"bodyprog: bss segment work attempt\n\nAttempted to merge what seems to be the bss segment of the engine, but failed for the most part due how confusing it is the overall layout of this data and the generation and alignment of this segment's data is really irregular. Also renamed the `/gfx/` folder to `/screen/` since it fits more with what is present on the files","measures":{"fuzzy_match_percent":65.11325,"total_code":2879592,"matched_code":1874996,"matched_code_percent":65.11325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5378,"matched_functions_percent":82.25757,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":149,"complete_units":0}},{"timestamp":"2025-12-09T05:34:18Z","commit_sha":"28bbac8cff2bf733aa957934a433d071f4b42cea","commit_message":"Fixups","measures":{"fuzzy_match_percent":65.11325,"total_code":2879592,"matched_code":1874996,"matched_code_percent":65.11325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5378,"matched_functions_percent":82.25757,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T18:24:04Z","commit_sha":"0bd28d62e3dacf430d4113dc676354da72b200b0","commit_message":"maps: sharedFunc_800D7D0C_2_s00\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":65.11325,"total_code":2879592,"matched_code":1874996,"matched_code_percent":65.11325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5378,"matched_functions_percent":82.25757,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T16:10:36Z","commit_sha":"f2c3949159fb49f59a2a0c2ec3c0afba4b89f142","commit_message":"bodyprog: minor fixup","measures":{"fuzzy_match_percent":64.941,"total_code":2879592,"matched_code":1870036,"matched_code_percent":64.94101,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5373,"matched_functions_percent":82.1811,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T15:24:40Z","commit_sha":"aea7b9ad031fa21885a06c80354bf9bfd388f1c4","commit_message":"maps: sharedFunc_800DD13C_2_s00\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":64.941,"total_code":2879592,"matched_code":1870036,"matched_code_percent":64.94101,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5373,"matched_functions_percent":82.1811,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T15:04:09Z","commit_sha":"a4f77684ee42fd0ee002a5bd966a8b706660f433","commit_message":"maps: sharedFunc_800D6400_2_s00","measures":{"fuzzy_match_percent":64.87294,"total_code":2879592,"matched_code":1868076,"matched_code_percent":64.87294,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5368,"matched_functions_percent":82.104614,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T14:20:24Z","commit_sha":"ce81638ff47d5eaa75aa30ec6f7caf84972d02cb","commit_message":"maps: sharedFunc_800DC0E4_2_s00\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":64.8278,"total_code":2879592,"matched_code":1866776,"matched_code_percent":64.8278,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5363,"matched_functions_percent":82.028145,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T13:58:32Z","commit_sha":"03d9c47dfac3e17d8a7e619f9efe688b14db4621","commit_message":"maps: sharedFunc_800D91A0_2_s00","measures":{"fuzzy_match_percent":64.77848,"total_code":2879592,"matched_code":1865356,"matched_code_percent":64.77848,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5358,"matched_functions_percent":81.95167,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T13:21:49Z","commit_sha":"6228bfac77d2fd8810ff7a28e6afd4dcc7f97fd5","commit_message":"maps: sharedFunc_800DC50C_2_s00","measures":{"fuzzy_match_percent":64.73056,"total_code":2879592,"matched_code":1863976,"matched_code_percent":64.73056,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5353,"matched_functions_percent":81.87519,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-08T00:12:07Z","commit_sha":"e4ed5751d5243db76a50115b34f38ee48d459680","commit_message":"map0_s00: func_800CE02C","measures":{"fuzzy_match_percent":64.70625,"total_code":2879592,"matched_code":1863276,"matched_code_percent":64.706245,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5348,"matched_functions_percent":81.79871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-07T23:48:20Z","commit_sha":"a16ed995c64d9e26cb01e69805d5994afb93cdb4","commit_message":"Progress fix\n\nI became evil and decided to revert the progress >:3\r\n\r\nThanks emoose for pointing out the issue","measures":{"fuzzy_match_percent":64.660965,"total_code":2879592,"matched_code":1861972,"matched_code_percent":64.660965,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5347,"matched_functions_percent":81.78342,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-07T21:16:04Z","commit_sha":"3eba0a466c16d278938a177bce87bcf6a75671c3","commit_message":"Setup adjustments\n\nDisabled the generation of ASM counterparts for C files when the user is not generating the Objdiff configuration and removed the step of replacing data in the generated `bss` assembly that contains garbage data as we could have generate the space required by using the segment type `pad`","measures":{"fuzzy_match_percent":0,"total_code":4696,"matched_code":0,"matched_code_percent":0,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":35,"matched_functions":0,"matched_functions_percent":0,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":2,"complete_units":0}},{"timestamp":"2025-12-07T17:56:56Z","commit_sha":"fe052fb2c89ffc45cea755edcb44734b5b1092b8","commit_message":"MAP2_S00: func_800D794C","measures":{"fuzzy_match_percent":64.660965,"total_code":2879592,"matched_code":1861972,"matched_code_percent":64.660965,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5347,"matched_functions_percent":81.78342,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-07T16:35:29Z","commit_sha":"bdf214ab9e10f8bfe7120ef1cf34ceec8537eda2","commit_message":"MAP2_S00: func_800D71A4\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":64.627625,"total_code":2879592,"matched_code":1861012,"matched_code_percent":64.62763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5346,"matched_functions_percent":81.76813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-07T11:03:39Z","commit_sha":"345d48abf8e5044def212c4c21bac8b90d9afb19","commit_message":"MAP7_S03/Incubator: func_800D3E18","measures":{"fuzzy_match_percent":64.59401,"total_code":2879592,"matched_code":1860044,"matched_code_percent":64.59401,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5345,"matched_functions_percent":81.75283,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-07T10:54:37Z","commit_sha":"5b0d46a012eb525a876c5ba839dbc7f948f1147b","commit_message":"MAP2_S00: func_800D756C\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":64.58401,"total_code":2879592,"matched_code":1859756,"matched_code_percent":64.58401,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5344,"matched_functions_percent":81.73753,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-07T10:53:40Z","commit_sha":"02a9721bc3fddb988536bfa2c8ad19e024018013","commit_message":"bodyprog: Inventory_PlayerItemScroll\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":64.54956,"total_code":2879592,"matched_code":1858764,"matched_code_percent":64.54956,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5343,"matched_functions_percent":81.722244,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-07T03:01:06Z","commit_sha":"88f36bcd627eea62314a5644d80731c3126ef49a","commit_message":"Bodyprog: sound system symbol recognition","measures":{"fuzzy_match_percent":64.35578,"total_code":2879592,"matched_code":1853184,"matched_code_percent":64.35578,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5342,"matched_functions_percent":81.70694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-06T15:29:12Z","commit_sha":"6d9448770bb62277cccd082566d9519b5f269e72","commit_message":"bodyprog: add `TriggerType` descriptions","measures":{"fuzzy_match_percent":64.35578,"total_code":2879592,"matched_code":1853184,"matched_code_percent":64.35578,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5342,"matched_functions_percent":81.70694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-06T15:06:17Z","commit_sha":"652d8e3e90ec43286b9c2d547c4ad6a4f320d204","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":64.35578,"total_code":2879592,"matched_code":1853184,"matched_code_percent":64.35578,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5342,"matched_functions_percent":81.70694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-06T06:55:16Z","commit_sha":"8ff16197d7d9b0e10f687034a9b44ee0f963ae37","commit_message":"Add GPU color macro","measures":{"fuzzy_match_percent":64.35578,"total_code":2879592,"matched_code":1853184,"matched_code_percent":64.35578,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5342,"matched_functions_percent":81.70694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-06T04:40:14Z","commit_sha":"d5cdea5adfe6717f52d23967d0d938268cc5fd65","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":64.35578,"total_code":2879592,"matched_code":1853184,"matched_code_percent":64.35578,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5342,"matched_functions_percent":81.70694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-06T00:11:48Z","commit_sha":"c9f3df8a25ba66c0ba0143d8131b0849b9e6ba2a","commit_message":"map6_s04: func_800E3EF4","measures":{"fuzzy_match_percent":64.35578,"total_code":2879592,"matched_code":1853184,"matched_code_percent":64.35578,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5342,"matched_functions_percent":81.70694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T22:46:39Z","commit_sha":"3e739375dedc38d536fce73fb4064ff13318f104","commit_message":"map7_s03: func_800E3F30","measures":{"fuzzy_match_percent":64.15492,"total_code":2879592,"matched_code":1847400,"matched_code_percent":64.15492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5341,"matched_functions_percent":81.69165,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T22:28:45Z","commit_sha":"e97ea656c9a80ab37b456e4c7034ea0cf0bda0af","commit_message":"map6_s04: func_800E558C","measures":{"fuzzy_match_percent":64.08477,"total_code":2879592,"matched_code":1845380,"matched_code_percent":64.08478,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5340,"matched_functions_percent":81.67635,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T22:13:19Z","commit_sha":"dab67d3a518b4eb67d9663631752af30ff0caa4d","commit_message":"map4_s03: func_800D8FC0","measures":{"fuzzy_match_percent":64.01615,"total_code":2879592,"matched_code":1843404,"matched_code_percent":64.01615,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5339,"matched_functions_percent":81.66106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T22:01:23Z","commit_sha":"0a45bbe7ec3a8e7020e9e3b7b238a01a06afd7a5","commit_message":"bodyprog: rename g_SysWork::field_2360/2370 to cutsceneLightPos/Rot","measures":{"fuzzy_match_percent":63.96017,"total_code":2879592,"matched_code":1841792,"matched_code_percent":63.96017,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5338,"matched_functions_percent":81.64576,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T21:47:34Z","commit_sha":"b5c0f8dc22dd5a41549ccc885358fb4c949e9423","commit_message":"map1_s05: func_800D4D1C","measures":{"fuzzy_match_percent":63.96017,"total_code":2879592,"matched_code":1841792,"matched_code_percent":63.96017,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5338,"matched_functions_percent":81.64576,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T21:12:34Z","commit_sha":"a79a6ac08c3880dab0a14e26e576a2062a8c257b","commit_message":"maps: fixups","measures":{"fuzzy_match_percent":63.913498,"total_code":2879592,"matched_code":1840448,"matched_code_percent":63.9135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5337,"matched_functions_percent":81.63047,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T21:05:07Z","commit_sha":"0356fa5c9df27f9367146b264c30fce19f72e4e8","commit_message":"map4_s01: func_800D3420\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":63.913498,"total_code":2879592,"matched_code":1840448,"matched_code_percent":63.9135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5337,"matched_functions_percent":81.63047,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T17:08:57Z","commit_sha":"47b5f21d7b7b04787522146ed6a52574e1806ff9","commit_message":"map6_s00: func_800EB11C\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: AmazingCodebases <AmazingCodebases@users.noreply.github.com>","measures":{"fuzzy_match_percent":63.771812,"total_code":2879592,"matched_code":1836368,"matched_code_percent":63.771812,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5336,"matched_functions_percent":81.61517,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T16:45:13Z","commit_sha":"7d88752e5b819aa9d42deac993abb575b124b070","commit_message":"map7_s02: func_800DD2D4, add `getTPageFromBuffer` hack\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":63.666935,"total_code":2879592,"matched_code":1833348,"matched_code_percent":63.666935,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5335,"matched_functions_percent":81.59988,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T12:12:39Z","commit_sha":"83b01a81c4848c58f9ccd6df64881c00800edbb9","commit_message":"refac: use Savegame macros (#462)","measures":{"fuzzy_match_percent":63.60401,"total_code":2879592,"matched_code":1831536,"matched_code_percent":63.604008,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5334,"matched_functions_percent":81.58459,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T08:06:12Z","commit_sha":"e024aea1ad0a8b74d06d61702c88785e3cfd6757","commit_message":"maps: rename `sharedData_800DFB7C_0_s00`","measures":{"fuzzy_match_percent":63.60401,"total_code":2879592,"matched_code":1831536,"matched_code_percent":63.604008,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5334,"matched_functions_percent":81.58459,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-05T07:43:22Z","commit_sha":"224ec704849177390da36fc0cb73d585bdf81591","commit_message":"maps: share 1 func","measures":{"fuzzy_match_percent":63.60401,"total_code":2879592,"matched_code":1831536,"matched_code_percent":63.604008,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5334,"matched_functions_percent":81.58459,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-04T15:15:19Z","commit_sha":"db750f1fb9614926ea7169b3018c752583aa2311","commit_message":"map0_s01: func_800CD1F8","measures":{"fuzzy_match_percent":63.47927,"total_code":2879592,"matched_code":1827944,"matched_code_percent":63.479267,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5333,"matched_functions_percent":81.56929,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-04T14:35:25Z","commit_sha":"cbd90689fc39bee893459a870a0c69a417cde5bc","commit_message":"bodyprog: fixups 2","measures":{"fuzzy_match_percent":63.35453,"total_code":2879592,"matched_code":1824352,"matched_code_percent":63.354527,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5332,"matched_functions_percent":81.55399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-04T14:30:55Z","commit_sha":"996b17b8939ce2401ae20465922ca7102ed31cac","commit_message":"bodyprog: fixups","measures":{"fuzzy_match_percent":63.35453,"total_code":2879592,"matched_code":1824352,"matched_code_percent":63.354527,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5332,"matched_functions_percent":81.55399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-03T14:05:11Z","commit_sha":"031f4919c253e42ef3208212b4f08c206d6d32e2","commit_message":"bodyprog: func_80088370\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":63.35453,"total_code":2879592,"matched_code":1824352,"matched_code_percent":63.354527,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5332,"matched_functions_percent":81.55399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-03T10:19:18Z","commit_sha":"77882ddd55f363bf6beae65fdc43c4613f61712a","commit_message":"bodyprog: `field_28` -> `lastUsedItemId_28`","measures":{"fuzzy_match_percent":63.2741,"total_code":2879592,"matched_code":1822036,"matched_code_percent":63.274105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5331,"matched_functions_percent":81.5387,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-03T10:01:53Z","commit_sha":"ab5d506fa99d0fcf9921400a8574c6b0e88a7740","commit_message":"bodyprog: name Event_Update arg","measures":{"fuzzy_match_percent":63.2741,"total_code":2879592,"matched_code":1822036,"matched_code_percent":63.274105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5331,"matched_functions_percent":81.5387,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-03T09:40:39Z","commit_sha":"7d57c2f6e8e92f01307a12371ac32829311dcdca","commit_message":"bodyprog: event trigger deobfuscation","measures":{"fuzzy_match_percent":63.2741,"total_code":2879592,"matched_code":1822036,"matched_code_percent":63.274105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5331,"matched_functions_percent":81.5387,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-03T07:56:54Z","commit_sha":"84f2193fa38a7dd8f98b9ff05fa1e262646f1fff","commit_message":"bodyprog: add `e_TriggerActivation` enum","measures":{"fuzzy_match_percent":63.2741,"total_code":2879592,"matched_code":1822036,"matched_code_percent":63.274105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5331,"matched_functions_percent":81.5387,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-03T06:02:36Z","commit_sha":"47ed594da160f130bd5ec68b791fb5cc6f052cbd","commit_message":"bodyprog: func_800373CC\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":63.2741,"total_code":2879592,"matched_code":1822036,"matched_code_percent":63.274105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5331,"matched_functions_percent":81.5387,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-02T06:28:44Z","commit_sha":"463076781cbd0d8392ee45fe6026e7a449895a38","commit_message":"Bodyprog: Audio symbol recognition + Minor Ninja rework","measures":{"fuzzy_match_percent":63.229374,"total_code":2879592,"matched_code":1820748,"matched_code_percent":63.229378,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5330,"matched_functions_percent":81.5234,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-02T04:57:03Z","commit_sha":"6875e194ab67bc9fc7d5524a3a2e8cac06e8dd3a","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":63.229374,"total_code":2879592,"matched_code":1820748,"matched_code_percent":63.229378,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5330,"matched_functions_percent":81.5234,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T15:22:14Z","commit_sha":"b9d6dbdc0b0daa9fa438cf0cab0b6ee8e1840617","commit_message":"map2: share 1 func","measures":{"fuzzy_match_percent":63.229374,"total_code":2879592,"matched_code":1820748,"matched_code_percent":63.229378,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5330,"matched_functions_percent":81.5234,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T12:38:54Z","commit_sha":"d340b9e96c12a15eb2b65d2a8797359c84258e41","commit_message":"maps: share sharedFunc_800CB5F4_3_s05","measures":{"fuzzy_match_percent":63.220207,"total_code":2879592,"matched_code":1820484,"matched_code_percent":63.220207,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5329,"matched_functions_percent":81.5081,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T12:25:57Z","commit_sha":"33e0288d7e7e6eebe33c5fb81bceddc5daaf10dd","commit_message":"maps: share 3 funcs\n\nAdded `s_func_80035F4C` so memcpy would use unaligned swr/swl for\ncopying, need to update callers of this to use that instead of u8[]","measures":{"fuzzy_match_percent":63.209927,"total_code":2879592,"matched_code":1820188,"matched_code_percent":63.209927,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5328,"matched_functions_percent":81.49281,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T12:19:38Z","commit_sha":"038634d5a89b2c4e04fe34c07dabea680f976277","commit_message":"sharedFunc_800CEC88_3_s03 => Ai_PuppetNurse_Control8","measures":{"fuzzy_match_percent":63.141582,"total_code":2879592,"matched_code":1818220,"matched_code_percent":63.141586,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5325,"matched_functions_percent":81.44693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T12:04:11Z","commit_sha":"4eca103f2d542ae7bc82bf3078adb7b59dc666bb","commit_message":"sharedFunc_800CFDD4_3_s03 => Ai_PuppetNurse_Control11","measures":{"fuzzy_match_percent":63.06546,"total_code":2879592,"matched_code":1816028,"matched_code_percent":63.065464,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5321,"matched_functions_percent":81.38574,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T10:23:18Z","commit_sha":"10ecbf15de21a9ebd15af7380a23c688d02776e4","commit_message":"sharedFunc_800D2214_1_s05: MoveSpeedUpdate fixup","measures":{"fuzzy_match_percent":62.950447,"total_code":2879592,"matched_code":1812716,"matched_code_percent":62.950443,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5317,"matched_functions_percent":81.32456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T10:05:04Z","commit_sha":"a646445c3271dc88c6126b06b8e36a5fd54ca3fb","commit_message":"map1: share 5 funcs","measures":{"fuzzy_match_percent":62.950447,"total_code":2879592,"matched_code":1812716,"matched_code_percent":62.950443,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5317,"matched_functions_percent":81.32456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T09:40:56Z","commit_sha":"59a1b1e3830542edc47461b5ce5d87d6f86ca7de","commit_message":"map1: share 2 funcs","measures":{"fuzzy_match_percent":62.931,"total_code":2879592,"matched_code":1812156,"matched_code_percent":62.931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5316,"matched_functions_percent":81.30927,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T08:17:09Z","commit_sha":"3374606bde6c231b9f3f9d478fd4aa855aff6506","commit_message":"Ai_PuppetNurse: share Control1/Control3_4","measures":{"fuzzy_match_percent":62.91933,"total_code":2879592,"matched_code":1811820,"matched_code_percent":62.91933,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5314,"matched_functions_percent":81.27868,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-12-01T05:47:00Z","commit_sha":"84e8ec223791a66ad6c59478944be007b6c2e34c","commit_message":"maps: Ai_PuppetNurse_Control5 fixup\n\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":62.83682,"total_code":2879592,"matched_code":1809444,"matched_code_percent":62.83682,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5308,"matched_functions_percent":81.186905,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T15:51:58Z","commit_sha":"178026dd4bffdcbb406b965e641a23d7143b95c8","commit_message":"sharedFunc_800CFD18_3_s03 => Ai_PuppetNurse_Control10","measures":{"fuzzy_match_percent":62.83682,"total_code":2879592,"matched_code":1809444,"matched_code_percent":62.83682,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5308,"matched_functions_percent":81.186905,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T15:39:27Z","commit_sha":"094e50a315f88402e0f683a8d860e5f61a8f2b7e","commit_message":"sharedFunc_800CF3AC_3_s03 => Ai_PuppetNurse_Control9","measures":{"fuzzy_match_percent":62.810703,"total_code":2879592,"matched_code":1808692,"matched_code_percent":62.8107,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5304,"matched_functions_percent":81.125725,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T14:03:00Z","commit_sha":"7686d8d99ccfa1182db49734d170a3078ae87a95","commit_message":"sharedFunc_800CF294_3_s03","measures":{"fuzzy_match_percent":62.727913,"total_code":2879592,"matched_code":1806308,"matched_code_percent":62.727917,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5300,"matched_functions_percent":81.064545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T13:10:20Z","commit_sha":"1c1dd4ec2a72397414db6d138b4571174fc0b1e5","commit_message":"sharedFunc_800CF0B4_3_s03","measures":{"fuzzy_match_percent":62.68902,"total_code":2879592,"matched_code":1805188,"matched_code_percent":62.68902,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5296,"matched_functions_percent":81.003365,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T12:48:05Z","commit_sha":"053e7951950e046cddb2a898d31cbf03463f97b0","commit_message":"sharedFunc_800CEEE0_3_s03","measures":{"fuzzy_match_percent":62.622345,"total_code":2879592,"matched_code":1803268,"matched_code_percent":62.622345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5292,"matched_functions_percent":80.942184,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T10:21:51Z","commit_sha":"69138cd0c30a4e3531217dea35bc07ae0399321a","commit_message":"bodyprog: func_80080540\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>\nCo-authored-by: Sezzary <sezzary@outlook.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":62.557335,"total_code":2879592,"matched_code":1801396,"matched_code_percent":62.557335,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5288,"matched_functions_percent":80.881004,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T09:58:28Z","commit_sha":"80813f9706528fb54ffb8a3e5db712ed68002a32","commit_message":"bodyprog: func_8008A3E0\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":62.554417,"total_code":2879592,"matched_code":1801312,"matched_code_percent":62.55442,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5287,"matched_functions_percent":80.86571,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T09:39:30Z","commit_sha":"40ea50c221367b9fad5f16dd728f6857828220c4","commit_message":"Use `PLAYER_IN_MAP_CHUNK`","measures":{"fuzzy_match_percent":62.43454,"total_code":2879592,"matched_code":1797860,"matched_code_percent":62.434544,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5286,"matched_functions_percent":80.85041,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T09:08:01Z","commit_sha":"e126489df6144ba42e6ce59433af3be1aa77a2bf","commit_message":"bodyprog: func_8008A058\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":62.43454,"total_code":2879592,"matched_code":1797860,"matched_code_percent":62.434544,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5286,"matched_functions_percent":80.85041,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T03:56:20Z","commit_sha":"7a9ee2c038f065af4a28cbeb039a7e4118d9e90a","commit_message":"Update fixed_point.h","measures":{"fuzzy_match_percent":62.43051,"total_code":2879592,"matched_code":1797744,"matched_code_percent":62.43051,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5285,"matched_functions_percent":80.83511,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T03:52:09Z","commit_sha":"3c6bdbf0e2b87fe6938fbc5ec2c22e31c72d4b1e","commit_message":"Start naming specialised func params according to characters they take","measures":{"fuzzy_match_percent":62.43051,"total_code":2879592,"matched_code":1797744,"matched_code_percent":62.43051,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5285,"matched_functions_percent":80.83511,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T03:03:50Z","commit_sha":"827fec09498c7c1eec34348f61e777af2a235a30","commit_message":"Add Puppet Nurse flags enum, minor deobfuscation","measures":{"fuzzy_match_percent":62.43051,"total_code":2879592,"matched_code":1797744,"matched_code_percent":62.43051,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5285,"matched_functions_percent":80.83511,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T02:52:07Z","commit_sha":"98f7045760a42ec4126499f016ae7974c23c994f","commit_message":"Tidy up `func_800D197C`, add Pupper Nurse anim enum","measures":{"fuzzy_match_percent":62.43051,"total_code":2879592,"matched_code":1797744,"matched_code_percent":62.43051,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5285,"matched_functions_percent":80.83511,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T02:38:38Z","commit_sha":"36d48766aa9c3924673ed39ffe7909f8dce54209","commit_message":"match: func_800D197C (#461)","measures":{"fuzzy_match_percent":62.43051,"total_code":2879592,"matched_code":1797744,"matched_code_percent":62.43051,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5285,"matched_functions_percent":80.83511,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-30T02:34:32Z","commit_sha":"324636578cdb280ca6251714def549953df95348","commit_message":"Formatting","measures":{"fuzzy_match_percent":62.41037,"total_code":2879592,"matched_code":1797164,"matched_code_percent":62.410366,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5284,"matched_functions_percent":80.819824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T22:06:56Z","commit_sha":"31add1d85461a6e6d3554e688daf656dbfc32be3","commit_message":"sharedFunc_800CEB90_3_s03 => Ai_PuppetNurse_Control6_7","measures":{"fuzzy_match_percent":62.41037,"total_code":2879592,"matched_code":1797164,"matched_code_percent":62.410366,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5284,"matched_functions_percent":80.819824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T22:04:22Z","commit_sha":"ab7d09266ccc2a33fb8ccc7138c65f39ebfe18d5","commit_message":"Chara_MoveSpeedUpdate macro","measures":{"fuzzy_match_percent":62.37592,"total_code":2879592,"matched_code":1796172,"matched_code_percent":62.37592,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5280,"matched_functions_percent":80.758644,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T20:48:36Z","commit_sha":"4a8ea65ccd9ff9020583cf6fbf4c51c7f79bf2ed","commit_message":"bodyprog: fix func_8008D990 nonmatching","measures":{"fuzzy_match_percent":62.37592,"total_code":2879592,"matched_code":1796172,"matched_code_percent":62.37592,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5280,"matched_functions_percent":80.758644,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T20:43:33Z","commit_sha":"6583b1e154d069838d40d3fc041efd40d259674a","commit_message":"sharedFunc_800CEA64_3_s03 => Ai_PuppetNurse_Control5","measures":{"fuzzy_match_percent":62.37592,"total_code":2879592,"matched_code":1796172,"matched_code_percent":62.37592,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5280,"matched_functions_percent":80.758644,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T16:43:54Z","commit_sha":"e92c93d33c6335bded6e1958750fcd98068a9a5c","commit_message":"sharedFunc_800CE7C8_3_s03","measures":{"fuzzy_match_percent":62.334248,"total_code":2879592,"matched_code":1794972,"matched_code_percent":62.334244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5276,"matched_functions_percent":80.69746,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T16:11:56Z","commit_sha":"63953603483a9a5b75dd3238da7c9ce7d241ed0f","commit_message":"share sharedFunc_800CE7C8_3_s03","measures":{"fuzzy_match_percent":62.241455,"total_code":2879592,"matched_code":1792300,"matched_code_percent":62.24146,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5272,"matched_functions_percent":80.636284,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T16:10:44Z","commit_sha":"f33b16e0057041f5970718cfc39baad49b0a8f2d","commit_message":"use puppetNurse substruct in puppetNurse code","measures":{"fuzzy_match_percent":62.192978,"total_code":2879592,"matched_code":1790904,"matched_code_percent":62.192978,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5267,"matched_functions_percent":80.5598,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T15:38:06Z","commit_sha":"d0bb890f2c0763b614c413c150cdf943bfcd0283","commit_message":"bodyprog: func_8008B1DC\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":62.192978,"total_code":2879592,"matched_code":1790904,"matched_code_percent":62.192978,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5267,"matched_functions_percent":80.5598,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T14:12:28Z","commit_sha":"993c8ae8a1f55db06dd873b6dcb0dcf66a6a60f8","commit_message":"rename Ai_PuppetNurse_AnimSfxGet, Ai_PuppetNurse_AnimUpdate","measures":{"fuzzy_match_percent":62.17756,"total_code":2879592,"matched_code":1790460,"matched_code_percent":62.177555,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5266,"matched_functions_percent":80.54451,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T12:23:08Z","commit_sha":"a5793afd19dfc90957a19901369ad943c12832eb","commit_message":"sym files format","measures":{"fuzzy_match_percent":62.115326,"total_code":2879592,"matched_code":1788668,"matched_code_percent":62.11533,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5258,"matched_functions_percent":80.42214,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T07:28:35Z","commit_sha":"c2f72b794a1763e0f8067ab439527fa13e4ef4d9","commit_message":"Small fixups","measures":{"fuzzy_match_percent":61.946278,"total_code":2879592,"matched_code":1783800,"matched_code_percent":61.946274,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5249,"matched_functions_percent":80.284485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T06:57:32Z","commit_sha":"9e0203046f25e48bea6feaa1f3f9b94765aeef37","commit_message":"Minor code documentation\n\nTruly one of the most bizarre things I have came across in this project","measures":{"fuzzy_match_percent":61.946278,"total_code":2879592,"matched_code":1783800,"matched_code_percent":61.946274,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5249,"matched_functions_percent":80.284485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T06:56:23Z","commit_sha":"523214fe63b56d75147d03dd3a8a425797586686","commit_message":"Minor code docummentation\n\nTruly one of the most bizarre things I have came across in this project","measures":{"fuzzy_match_percent":61.946278,"total_code":2879592,"matched_code":1783800,"matched_code_percent":61.946274,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5249,"matched_functions_percent":80.284485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T06:53:05Z","commit_sha":"4d40860dba95bbfb9b8c8dffbbba15097abcb0d7","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":61.946278,"total_code":2879592,"matched_code":1783800,"matched_code_percent":61.946274,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5249,"matched_functions_percent":80.284485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T06:25:04Z","commit_sha":"1a4e95d3e3750794d94c2e51bab246e3442f0a13","commit_message":"maps: sharedFunc_800D4358_2_s00","measures":{"fuzzy_match_percent":61.946278,"total_code":2879592,"matched_code":1783800,"matched_code_percent":61.946274,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5249,"matched_functions_percent":80.284485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T05:34:37Z","commit_sha":"812769f26addffb9fbcb60a3316623e6dbb01ed9","commit_message":"maps: sharedFunc_800D8618_2_s00","measures":{"fuzzy_match_percent":61.793476,"total_code":2879592,"matched_code":1779400,"matched_code_percent":61.793476,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5244,"matched_functions_percent":80.208015,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T05:17:14Z","commit_sha":"6333750988f7a4ee321390e845d8845d2b884889","commit_message":"maps: sharedFunc_800D6E28_2_s00","measures":{"fuzzy_match_percent":61.685127,"total_code":2879592,"matched_code":1776280,"matched_code_percent":61.685127,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5239,"matched_functions_percent":80.13154,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T04:41:41Z","commit_sha":"f991416252b05a58409f00cfe6e76ac6e92dd22a","commit_message":"maps: sharedFunc_800D5DAC_2_s00","measures":{"fuzzy_match_percent":61.530243,"total_code":2879592,"matched_code":1771820,"matched_code_percent":61.530243,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5234,"matched_functions_percent":80.05506,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T03:45:14Z","commit_sha":"6c453771d82c8a5371af164d13183d0247e704b6","commit_message":"maps: match 2 funcs","measures":{"fuzzy_match_percent":61.41634,"total_code":2879592,"matched_code":1768540,"matched_code_percent":61.41634,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5229,"matched_functions_percent":79.978584,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T01:40:28Z","commit_sha":"871c2a4ab3467abf2f22e696b659a47c034a8277","commit_message":"maps: share 4 funcs","measures":{"fuzzy_match_percent":61.322575,"total_code":2879592,"matched_code":1765840,"matched_code_percent":61.322575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5219,"matched_functions_percent":79.82563,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-29T00:49:29Z","commit_sha":"88664dce9a6df8cde3fd65ac434b0449e77c2b68","commit_message":"Ninja build fix [skip CI]","measures":{"fuzzy_match_percent":61.240063,"total_code":2879592,"matched_code":1763464,"matched_code_percent":61.240067,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5207,"matched_functions_percent":79.64209,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-28T21:00:30Z","commit_sha":"08dda33bde8e570e56573a08d83e106e7551fbed","commit_message":"MAP3_S03: func_800CDDE8\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":61.240063,"total_code":2879592,"matched_code":1763464,"matched_code_percent":61.240067,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5207,"matched_functions_percent":79.64209,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-28T16:13:14Z","commit_sha":"88f2d75bcd6642f53b2ee76e6caa0042f1d6bd3a","commit_message":"MAP3_S03: func_800D429C\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":61.222282,"total_code":2879592,"matched_code":1762952,"matched_code_percent":61.222286,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5204,"matched_functions_percent":79.59621,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-28T15:30:49Z","commit_sha":"106025d7ecd8a33a530063df82043cb5d9785681","commit_message":"MAP3_S03: func_800CF7F4","measures":{"fuzzy_match_percent":61.1163,"total_code":2879592,"matched_code":1759900,"matched_code_percent":61.116295,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5203,"matched_functions_percent":79.58091,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-28T03:04:14Z","commit_sha":"a3e4d6b26c3f31029dc2d9a1a35ccc9bfb1f0ab8","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":61.106575,"total_code":2879592,"matched_code":1759620,"matched_code_percent":61.106575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5202,"matched_functions_percent":79.56561,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-27T22:18:56Z","commit_sha":"8ef8a26fbf6a9850b172c61a48cdc4d982a4bd3d","commit_message":"maps: minor fixups","measures":{"fuzzy_match_percent":61.106575,"total_code":2879592,"matched_code":1759620,"matched_code_percent":61.106575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5202,"matched_functions_percent":79.56561,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-27T22:15:07Z","commit_sha":"af7902f9735c95d157d7b689a23289bf4d8534b6","commit_message":"maps: sharedFunc_800DB54C_2_s00","measures":{"fuzzy_match_percent":61.106575,"total_code":2879592,"matched_code":1759620,"matched_code_percent":61.106575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5202,"matched_functions_percent":79.56561,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-27T20:00:34Z","commit_sha":"035cdecc3e93e03b20c33e279fe19179e9dc673f","commit_message":"maps: sharedFunc_800DA598_2_s00","measures":{"fuzzy_match_percent":60.95655,"total_code":2879592,"matched_code":1755300,"matched_code_percent":60.95655,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5197,"matched_functions_percent":79.48914,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-27T14:43:46Z","commit_sha":"9ed442b40f3801ea20802639afef7acc3ec4fb02","commit_message":"bodyprog: match func_8004EF48\n\nCo-authored-by: Mc-muffin <ederm14@hotmail.com>\nCo-authored-by: emoose <abc@cock.li>","measures":{"fuzzy_match_percent":60.80514,"total_code":2879592,"matched_code":1750940,"matched_code_percent":60.80514,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5192,"matched_functions_percent":79.41267,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-27T08:11:17Z","commit_sha":"c19dab37eb32fbaf5577f9ead57db54e2c5b041a","commit_message":"maps: sharedFunc_800E55B0_2_s00","measures":{"fuzzy_match_percent":60.804825,"total_code":2879592,"matched_code":1750488,"matched_code_percent":60.789448,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5191,"matched_functions_percent":79.39737,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-27T07:56:22Z","commit_sha":"9d1fb10901526b046237ae0ccd9400db8cdcccdc","commit_message":"bodyprog: 96.59% match func_8004EF48","measures":{"fuzzy_match_percent":60.649246,"total_code":2879592,"matched_code":1746008,"matched_code_percent":60.63387,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5186,"matched_functions_percent":79.32089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-27T07:44:18Z","commit_sha":"e419aaa61aa50beb44bd710e374aa07e745499ca","commit_message":"maps: sharedFunc_800D7B14_0_s01","measures":{"fuzzy_match_percent":60.63387,"total_code":2879592,"matched_code":1746008,"matched_code_percent":60.63387,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5186,"matched_functions_percent":79.32089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-26T19:58:10Z","commit_sha":"ad00bf5c6c0954a4c4e517d0ffc8273bfd014351","commit_message":"maps: sharedFunc_800D80EC_2_s00, add bitfields + merge struct\n\nMerged s_sharedData_800E231C_0_s01 into s_sharedData_800E21D0_0_s01","measures":{"fuzzy_match_percent":60.449677,"total_code":2879592,"matched_code":1740704,"matched_code_percent":60.449677,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5180,"matched_functions_percent":79.229126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-26T19:37:39Z","commit_sha":"0c09cee57f6a1d879f133a7abfdf985dff05d39a","commit_message":"bodyprog: func_80059E34","measures":{"fuzzy_match_percent":60.31424,"total_code":2879592,"matched_code":1736804,"matched_code_percent":60.31424,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5175,"matched_functions_percent":79.15264,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-26T06:52:42Z","commit_sha":"721db4ba3ecca80b0dc4c88cf63bf748ebbf297e","commit_message":"Q12 conversions","measures":{"fuzzy_match_percent":60.27951,"total_code":2879592,"matched_code":1735804,"matched_code_percent":60.27951,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5174,"matched_functions_percent":79.13735,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-26T04:59:33Z","commit_sha":"41099b4ca92a16d0c68ba7fea70decf1cb57c8d4","commit_message":"Fix mismatch","measures":{"fuzzy_match_percent":60.27951,"total_code":2879592,"matched_code":1735804,"matched_code_percent":60.27951,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5174,"matched_functions_percent":79.13735,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-26T04:43:17Z","commit_sha":"6fe6e89179076ad0688112e1149d62cabb6f6bbc","commit_message":"Tidying pass, deobfuscation","measures":{"fuzzy_match_percent":60.27951,"total_code":2879592,"matched_code":1733644,"matched_code_percent":60.2045,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5173,"matched_functions_percent":79.122055,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-26T00:07:15Z","commit_sha":"2cad6f07d5c309e13f9b7ebe24eae24e56f1897a","commit_message":"maps: sharedFunc_800D5268_2_s00","measures":{"fuzzy_match_percent":60.27951,"total_code":2879592,"matched_code":1735804,"matched_code_percent":60.27951,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5174,"matched_functions_percent":79.13735,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-25T20:12:22Z","commit_sha":"31b69f208153edab930a08fa7167ac73f363dc16","commit_message":"Update README, improve abs hack\n\nThanks @Mc-muffin for the suggestion","measures":{"fuzzy_match_percent":60.14963,"total_code":2879592,"matched_code":1732064,"matched_code_percent":60.149635,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5169,"matched_functions_percent":79.060875,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-25T16:30:39Z","commit_sha":"9999411e0337a43b704d0a146cc36f2494b4dbbb","commit_message":"bodyprog: func_8008B714\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":60.14963,"total_code":2879592,"matched_code":1732064,"matched_code_percent":60.149635,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5169,"matched_functions_percent":79.060875,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-25T15:08:51Z","commit_sha":"6391b628f604c21e675857ddab287412ffe99631","commit_message":"bodyprog: func_8008BF84 - change arg0 type","measures":{"fuzzy_match_percent":60.074623,"total_code":2879592,"matched_code":1729904,"matched_code_percent":60.074623,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5168,"matched_functions_percent":79.04558,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-25T11:32:48Z","commit_sha":"aa4346d773127488f9843ac35bf81477c5f58222","commit_message":"bodyprog: func_80071620, fixes\n\nCo-authored-by: Sezzary <sezzary@outlook.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":60.074623,"total_code":2879592,"matched_code":1729904,"matched_code_percent":60.074623,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5168,"matched_functions_percent":79.04558,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-25T03:54:50Z","commit_sha":"b9fc39eb130390f910061ddd859f1963c707d5a9","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":60.05962,"total_code":2879592,"matched_code":1729472,"matched_code_percent":60.05962,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5167,"matched_functions_percent":79.03029,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-25T02:00:20Z","commit_sha":"8c521994e3aef95c9973b671db56b5031feec807","commit_message":"maps: match/share 2 funcs","measures":{"fuzzy_match_percent":60.05962,"total_code":2879592,"matched_code":1729472,"matched_code_percent":60.05962,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5167,"matched_functions_percent":79.03029,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-25T01:17:59Z","commit_sha":"4d0f2e2809b877c9a16600070a2aea33d845bcd3","commit_message":"maps: sharedFunc_800DB038_2_s00","measures":{"fuzzy_match_percent":59.87001,"total_code":2879592,"matched_code":1724012,"matched_code_percent":59.87001,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5157,"matched_functions_percent":78.87733,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T23:39:18Z","commit_sha":"a5b8a031dc1a17029560545fe25ebd6fb26f74d5","commit_message":"maps: sharedFunc_800DC6E4_2_s00","measures":{"fuzzy_match_percent":59.785275,"total_code":2879592,"matched_code":1721572,"matched_code_percent":59.78528,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5152,"matched_functions_percent":78.80086,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T22:10:23Z","commit_sha":"c667217bf8eae14ea3f6b3e0983163fd8431ebf1","commit_message":"maps: match/share 2 funcs","measures":{"fuzzy_match_percent":59.710266,"total_code":2879592,"matched_code":1719412,"matched_code_percent":59.710266,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5147,"matched_functions_percent":78.72438,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T22:00:25Z","commit_sha":"64651ed35e26cad6e98542021f8cdf7c631dea3c","commit_message":"MAP6_S00: func_800EBEE0","measures":{"fuzzy_match_percent":59.588024,"total_code":2879592,"matched_code":1715892,"matched_code_percent":59.588028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5137,"matched_functions_percent":78.57143,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T21:56:15Z","commit_sha":"60a4b07600405fc897a20ef71cd1bea60bc0b547","commit_message":"maps: sharedFunc_800DECC4_2_s00","measures":{"fuzzy_match_percent":59.536213,"total_code":2879592,"matched_code":1714400,"matched_code_percent":59.536213,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5136,"matched_functions_percent":78.55613,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T21:36:29Z","commit_sha":"2282ff58991a861535b7836af9800fa5e1f12a45","commit_message":"maps: sharedFunc_800D92B4_2_s00","measures":{"fuzzy_match_percent":59.475094,"total_code":2879592,"matched_code":1712640,"matched_code_percent":59.475094,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5131,"matched_functions_percent":78.47966,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T21:22:07Z","commit_sha":"9d3fdc51567d585c4cd7a736b116b658676410cf","commit_message":"maps: sharedFunc_800DE6A8_2_s00","measures":{"fuzzy_match_percent":59.42161,"total_code":2879592,"matched_code":1711100,"matched_code_percent":59.42161,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5126,"matched_functions_percent":78.40318,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T20:56:37Z","commit_sha":"c1b60a206e3e31efb2224b07fe760ad62d3c75b6","commit_message":"maps: sharedFunc_800DBF88_2_s00","measures":{"fuzzy_match_percent":59.36744,"total_code":2879592,"matched_code":1709540,"matched_code_percent":59.367435,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5121,"matched_functions_percent":78.326706,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T20:20:18Z","commit_sha":"f81f879a438a50390ae211e7ccbe71cbb96fd941","commit_message":"maps: match/share 2 funcs","measures":{"fuzzy_match_percent":59.317432,"total_code":2879592,"matched_code":1708100,"matched_code_percent":59.317432,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5116,"matched_functions_percent":78.25023,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T19:32:54Z","commit_sha":"6f6bdf1c3aa72a4c745a82fc92388b0c547d1869","commit_message":"maps: sharedFunc_800DE034_2_s00","measures":{"fuzzy_match_percent":59.227837,"total_code":2879592,"matched_code":1705520,"matched_code_percent":59.227837,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5106,"matched_functions_percent":78.097275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T19:24:45Z","commit_sha":"558e82e6ed93c265806615d777a489b6d50f6fb6","commit_message":"maps: sharedFunc_800DC438_2_s00, merge maptool --replace/--updsyms","measures":{"fuzzy_match_percent":59.187553,"total_code":2879592,"matched_code":1704360,"matched_code_percent":59.18755,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5101,"matched_functions_percent":78.0208,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T16:53:30Z","commit_sha":"7d0db0d702f2678938829842e81403f5d5adec8f","commit_message":"maps: sharedFunc_800DC30C_2_s00","measures":{"fuzzy_match_percent":59.14463,"total_code":2879592,"matched_code":1703124,"matched_code_percent":59.144627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5095,"matched_functions_percent":77.92903,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T16:15:01Z","commit_sha":"7485855d73c3b7582f3a6213e63203184ea849a1","commit_message":"maps: sharedFunc_800DEBCC_2_s00","measures":{"fuzzy_match_percent":59.120182,"total_code":2879592,"matched_code":1702420,"matched_code_percent":59.12018,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5091,"matched_functions_percent":77.86785,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T14:30:10Z","commit_sha":"27cc37e8df7c7e28621f2b822f1481236bc7fb2b","commit_message":"README: update, minor memcpy fixup","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T13:20:18Z","commit_sha":"8edf20344dc3cf656af8da37f1e0d0f421e4ff60","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T12:18:05Z","commit_sha":"7b38f3a7592f8c75f4a89e8a6d55cb16be917f18","commit_message":"Name math funcs\n\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T11:43:02Z","commit_sha":"2a243975d2024afdd78ea6e11e28f276993ba917","commit_message":"Update sym.bodyprog.txt","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T11:30:47Z","commit_sha":"a75f3caf9b897b24a63f50e9525167bf9e53e496","commit_message":"Update sym.bodyprog.txt","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T11:07:40Z","commit_sha":"7dcff4bf90a2486eeaffbdd45388d9e62144079a","commit_message":"Name math funcs\n\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T07:36:00Z","commit_sha":"f120c109862cf376d0815f511ca1fc04eec45692","commit_message":"Use number limit constants","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T07:03:43Z","commit_sha":"2d46b8e3d3f764bf36766c4ead27f6bef86011ee","commit_message":"Name field, comments","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T06:41:15Z","commit_sha":"3ba88de41ae5e4cd60a44605553c099247995a68","commit_message":"Fix backwards macro","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T06:03:47Z","commit_sha":"146b8c83d6251a01e4892442508c8fefa7015a38","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-24T05:40:13Z","commit_sha":"1721398035ec727e0e265d72377124597a75ce9f","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T22:21:35Z","commit_sha":"2ff222adad5ccf2f8c83e9fb90512d8977921c39","commit_message":"main: match `memcpy`\n\nCo-authored-by: fmil95 <fmil95@users.noreply.github.com>\nCo-authored-by: Mc-muffin <Mc-muffin@users.noreply.github.com>\nCo-authored-by: iwereth <iwereth@users.noreply.github.com>\nCo-authored-by: Sparagas <Sparagas@users.noreply.github.com>\nCo-authored-by: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":59.09379,"total_code":2879592,"matched_code":1701660,"matched_code_percent":59.093792,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5086,"matched_functions_percent":77.791374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T19:03:11Z","commit_sha":"5ad7a9a05a9acadcbf1b8ddeea3fa119020d4ccf","commit_message":"maps: match/share 2 funcs, minor fixups","measures":{"fuzzy_match_percent":59.082954,"total_code":2879592,"matched_code":1701348,"matched_code_percent":59.082954,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5085,"matched_functions_percent":77.77608,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T18:47:19Z","commit_sha":"a3e1956dd3f136bba05046b3a46acf96900e98aa","commit_message":"maps: match/share 3 funcs","measures":{"fuzzy_match_percent":59.04892,"total_code":2879592,"matched_code":1700368,"matched_code_percent":59.04892,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5075,"matched_functions_percent":77.62313,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T15:41:34Z","commit_sha":"59461d7710eba04162d6c5ab3f966d42efe168c1","commit_message":"Fix","measures":{"fuzzy_match_percent":58.96488,"total_code":2879592,"matched_code":1697948,"matched_code_percent":58.964878,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5060,"matched_functions_percent":77.3937,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T15:33:46Z","commit_sha":"a61d4bb977d4822523f0b5143c323e49f95f8352","commit_message":"Revert \"Use \"cell\" term consistently, docs\"\n\nThis reverts commit 46db0f04ee199da8214201d7a55f61594f46b671.","measures":{"fuzzy_match_percent":58.96488,"total_code":2879592,"matched_code":1697948,"matched_code_percent":58.964878,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5060,"matched_functions_percent":77.3937,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T15:28:00Z","commit_sha":"46db0f04ee199da8214201d7a55f61594f46b671","commit_message":"Use \"cell\" term consistently, docs","measures":{"fuzzy_match_percent":58.090767,"total_code":2879592,"matched_code":1648612,"matched_code_percent":57.251583,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5040,"matched_functions_percent":77.0878,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T14:49:11Z","commit_sha":"d530b77f293d0fc32f88940a5aa37352a8e9ca33","commit_message":"maps: share 2 funcs","measures":{"fuzzy_match_percent":58.96488,"total_code":2879592,"matched_code":1697948,"matched_code_percent":58.964878,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5060,"matched_functions_percent":77.3937,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T14:30:03Z","commit_sha":"b74b89ff0c453fa92c2ca2e13080b80de599b358","commit_message":"maps: share 6 funcs","measures":{"fuzzy_match_percent":58.909733,"total_code":2879592,"matched_code":1696360,"matched_code_percent":58.909733,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5053,"matched_functions_percent":77.28663,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T14:10:41Z","commit_sha":"270992cb518611aff078238fabfff5118cccc265","commit_message":"maps: share 11 funcs","measures":{"fuzzy_match_percent":58.65831,"total_code":2879592,"matched_code":1689120,"matched_code_percent":58.658306,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":5023,"matched_functions_percent":76.827774,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T13:30:10Z","commit_sha":"58583ff84eb0fa8714b4b2dd0e35ff895823d8dc","commit_message":"maps: share 3 funcs","measures":{"fuzzy_match_percent":58.278255,"total_code":2879592,"matched_code":1678176,"matched_code_percent":58.278255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4979,"matched_functions_percent":76.154785,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T12:50:56Z","commit_sha":"29f585e1f9b904c9f622cb3fc9a2f8b1f6b03688","commit_message":"Include fixups","measures":{"fuzzy_match_percent":58.27228,"total_code":2879592,"matched_code":1678004,"matched_code_percent":58.272285,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4978,"matched_functions_percent":76.13949,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T12:24:19Z","commit_sha":"fefe6e09275fefc65a4ba6802a91ac577361fcd1","commit_message":"MAP2_S00: func_800EC080","measures":{"fuzzy_match_percent":58.27228,"total_code":2879592,"matched_code":1678004,"matched_code_percent":58.272285,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4978,"matched_functions_percent":76.13949,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T12:19:59Z","commit_sha":"61ff477d5c587449c0f58fee2393aecc95e31b77","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":57.94696,"total_code":2879592,"matched_code":1668636,"matched_code_percent":57.94696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4977,"matched_functions_percent":76.1242,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T09:30:24Z","commit_sha":"6ec4b2867950b5c289716cd1601dce686552bc8a","commit_message":"Split `vw_system.h`","measures":{"fuzzy_match_percent":57.94696,"total_code":2879592,"matched_code":1668636,"matched_code_percent":57.94696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4977,"matched_functions_percent":76.1242,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T07:58:39Z","commit_sha":"b7c0973d055b2b0d5b71e1966570d54a7a4fa3cc","commit_message":"Camera docs","measures":{"fuzzy_match_percent":57.94696,"total_code":2879592,"matched_code":1668636,"matched_code_percent":57.94696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4977,"matched_functions_percent":76.1242,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T07:38:19Z","commit_sha":"1a9ca5853cb64253c08913ec5f17d7152bb6cea3","commit_message":"Camera docs","measures":{"fuzzy_match_percent":57.94696,"total_code":2879592,"matched_code":1668636,"matched_code_percent":57.94696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4977,"matched_functions_percent":76.1242,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T07:34:15Z","commit_sha":"fff2742a2d06433dc16f7ca75b1633a0480c6bbb","commit_message":"maps: fixups","measures":{"fuzzy_match_percent":57.94696,"total_code":2879592,"matched_code":1668636,"matched_code_percent":57.94696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4977,"matched_functions_percent":76.1242,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T07:30:43Z","commit_sha":"376dc449e5834bddd93a915529a59fcac7bda6b6","commit_message":"maps: share 3 funcs","measures":{"fuzzy_match_percent":57.94696,"total_code":2879592,"matched_code":1668636,"matched_code_percent":57.94696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4977,"matched_functions_percent":76.1242,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T07:07:42Z","commit_sha":"8b29214a54224eb36773413374041af28ec118d9","commit_message":"maps: share 3 funcs","measures":{"fuzzy_match_percent":57.924316,"total_code":2879592,"matched_code":1667984,"matched_code_percent":57.924316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4976,"matched_functions_percent":76.1089,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T01:22:40Z","commit_sha":"ecf94fb686c934f4142784a0ded8a094a00b6b68","commit_message":"maps: match 1 func, share sharedFunc_800CB6B0_0_s00_noParticles","measures":{"fuzzy_match_percent":57.907646,"total_code":2879592,"matched_code":1667504,"matched_code_percent":57.907646,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4972,"matched_functions_percent":76.04772,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-23T00:03:27Z","commit_sha":"e0d8e4b2793c212a1aa52ed8b74f3b62377bac9a","commit_message":"maps: share sharedFunc_800E5930_2_s00","measures":{"fuzzy_match_percent":57.780964,"total_code":2879592,"matched_code":1663856,"matched_code_percent":57.780964,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4962,"matched_functions_percent":75.89477,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T23:57:49Z","commit_sha":"536682e9371d3f08caa5e5327fae217f88ef4497","commit_message":"maps: fixup arg type","measures":{"fuzzy_match_percent":57.742207,"total_code":2879592,"matched_code":1662740,"matched_code_percent":57.742207,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4959,"matched_functions_percent":75.848885,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T23:55:53Z","commit_sha":"a62f2beb04a8b21407c9528e08f07ed3af7c1a39","commit_message":"maps: share 3 funcs","measures":{"fuzzy_match_percent":57.742207,"total_code":2879592,"matched_code":1662740,"matched_code_percent":57.742207,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4959,"matched_functions_percent":75.848885,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T23:45:06Z","commit_sha":"9109113e529b8cb005f10437dc9da1cee84694e2","commit_message":"maps: share `sharedFunc_800E5FC8_2_s02`","measures":{"fuzzy_match_percent":57.70512,"total_code":2879592,"matched_code":1661672,"matched_code_percent":57.705124,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4954,"matched_functions_percent":75.77241,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T15:10:49Z","commit_sha":"7c5b025578d564afd6f51194395a517f1297b383","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":57.67303,"total_code":2879592,"matched_code":1660748,"matched_code_percent":57.67303,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4951,"matched_functions_percent":75.726524,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T14:51:09Z","commit_sha":"f02e8df6c9e7859a542604c553668f82d7250212","commit_message":"Fix build","measures":{"fuzzy_match_percent":57.67303,"total_code":2879592,"matched_code":1660748,"matched_code_percent":57.67303,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4951,"matched_functions_percent":75.726524,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T14:11:16Z","commit_sha":"79d35b977c1b318ab24b3134b62642c102fc2a1a","commit_message":"MAP2_S00: func_800EE660","measures":{"fuzzy_match_percent":57.66803,"total_code":2879592,"matched_code":1660604,"matched_code_percent":57.66803,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4950,"matched_functions_percent":75.71123,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T13:53:44Z","commit_sha":"5872f4a6814a5ee53fdef258d09bae8348065015","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":57.66539,"total_code":2879592,"matched_code":1660528,"matched_code_percent":57.66539,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4949,"matched_functions_percent":75.69593,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T11:32:07Z","commit_sha":"00674c02cf4f336649e69a03f6caa46b605a2bf6","commit_message":"Deobfuscation, comments","measures":{"fuzzy_match_percent":57.66539,"total_code":2879592,"matched_code":1660528,"matched_code_percent":57.66539,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4949,"matched_functions_percent":75.69593,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T11:18:58Z","commit_sha":"8f3fb33b5d0bc1206209c1e970753e9999d7036d","commit_message":"map1_s05: fixup arg type","measures":{"fuzzy_match_percent":57.66539,"total_code":2879592,"matched_code":1660528,"matched_code_percent":57.66539,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4949,"matched_functions_percent":75.69593,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T11:12:59Z","commit_sha":"220ae2d393ebb73b3590e104e41db7d42294c2a0","commit_message":"map1_s05: func_800CCDD4","measures":{"fuzzy_match_percent":57.66539,"total_code":2879592,"matched_code":1660528,"matched_code_percent":57.66539,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4949,"matched_functions_percent":75.69593,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T10:38:28Z","commit_sha":"8bb4de81b9355c006df318794440cdd96a637a14","commit_message":"MAP2_S00: func_800DDF74","measures":{"fuzzy_match_percent":57.662334,"total_code":2879592,"matched_code":1660440,"matched_code_percent":57.66234,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4948,"matched_functions_percent":75.68063,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T10:29:58Z","commit_sha":"0a0c47a44a1df9e071ccd371df9591ad3ae0011f","commit_message":"map1_s06: func_800D4FE4","measures":{"fuzzy_match_percent":57.655666,"total_code":2879592,"matched_code":1660248,"matched_code_percent":57.65567,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4947,"matched_functions_percent":75.665344,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T10:14:08Z","commit_sha":"e2c2d52bf7f34c83bfd4f78008a4f20c75474116","commit_message":"maps/player: fixups\n\nChanged Player_ExtraStateSet to macro for it to match inside Player_ControlUnfreeze","measures":{"fuzzy_match_percent":57.652195,"total_code":2879592,"matched_code":1660148,"matched_code_percent":57.652195,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4946,"matched_functions_percent":75.65005,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T10:05:21Z","commit_sha":"4acc630792219fc3a365ed2e8a3798a870eb3917","commit_message":"MAP2_S00: func_800DF80C","measures":{"fuzzy_match_percent":57.652195,"total_code":2879592,"matched_code":1660148,"matched_code_percent":57.652195,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4946,"matched_functions_percent":75.65005,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T09:26:08Z","commit_sha":"dd2d7b300126bf429dd051e2c315c6031bbedd4f","commit_message":"maps: merge player-related sharedFuncs into `Player.h`","measures":{"fuzzy_match_percent":57.647057,"total_code":2879592,"matched_code":1660000,"matched_code_percent":57.647057,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4945,"matched_functions_percent":75.63475,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T08:14:56Z","commit_sha":"53c83d8fdac895b41124c31caaa69f180edb6bf7","commit_message":"maps: match 13 funcs","measures":{"fuzzy_match_percent":57.647057,"total_code":2879592,"matched_code":1660000,"matched_code_percent":57.647057,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4945,"matched_functions_percent":75.63475,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T07:32:02Z","commit_sha":"6b87b150e0d28efe52849a6eebafd40d8ff0ad0d","commit_message":"map6: match 4 funcs","measures":{"fuzzy_match_percent":57.611076,"total_code":2879592,"matched_code":1658964,"matched_code_percent":57.611076,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4932,"matched_functions_percent":75.43591,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T07:07:55Z","commit_sha":"9d2eba85029e1f7aedf2d23f9dfccff6b83cdb9b","commit_message":"map7_s03: match 15 funcs","measures":{"fuzzy_match_percent":57.596355,"total_code":2879592,"matched_code":1658540,"matched_code_percent":57.596355,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4928,"matched_functions_percent":75.37473,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T06:29:36Z","commit_sha":"65601c1a0587180409d210708b0ec05968dfdd5d","commit_message":"maps: sharedFunc_800D3AFC_1_s05","measures":{"fuzzy_match_percent":57.549126,"total_code":2879592,"matched_code":1657180,"matched_code_percent":57.549126,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4913,"matched_functions_percent":75.1453,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T05:07:57Z","commit_sha":"25f6631c24f150edf62829e6c93a7b16a14797f8","commit_message":"maps: sharedFunc_800D03F8_5_s00","measures":{"fuzzy_match_percent":57.545513,"total_code":2879592,"matched_code":1657076,"matched_code_percent":57.545513,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4911,"matched_functions_percent":75.114716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T02:46:41Z","commit_sha":"a934f5063caf39415fd09c8ce5099ebf393cc191","commit_message":"map6_s04: match 4 funcs","measures":{"fuzzy_match_percent":57.543015,"total_code":2879592,"matched_code":1657004,"matched_code_percent":57.543015,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4909,"matched_functions_percent":75.08413,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T00:44:15Z","commit_sha":"638e9976477d6408f857f309c15f68fb92b25562","commit_message":"maps: restore `Player_FallBackward` func name","measures":{"fuzzy_match_percent":57.50176,"total_code":2879592,"matched_code":1655816,"matched_code_percent":57.50176,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4905,"matched_functions_percent":75.02294,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-22T00:39:26Z","commit_sha":"e2b4801ec014758d0d6a9f3d434e539b871f1850","commit_message":"maps: share empty funcs","measures":{"fuzzy_match_percent":57.50176,"total_code":2879592,"matched_code":1655816,"matched_code_percent":57.50176,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4905,"matched_functions_percent":75.02294,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-21T21:01:21Z","commit_sha":"ed422f1418fd113b7ecfe5effd729e772b44ef3a","commit_message":"maps: sharedFunc_800D2E9C_0_s00","measures":{"fuzzy_match_percent":57.50176,"total_code":2879592,"matched_code":1655816,"matched_code_percent":57.50176,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4905,"matched_functions_percent":75.02294,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-21T08:43:16Z","commit_sha":"7ea2696b703d493cb864ffd20e5e3f1748697b33","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":57.30312,"total_code":2879592,"matched_code":1650096,"matched_code_percent":57.30312,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4900,"matched_functions_percent":74.94647,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-21T03:26:34Z","commit_sha":"92379cd8bd06bd3e82ee2a5356b754e22a9e6683","commit_message":"maps: match 5 funcs","measures":{"fuzzy_match_percent":57.30312,"total_code":2879592,"matched_code":1650096,"matched_code_percent":57.30312,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4900,"matched_functions_percent":74.94647,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-20T22:45:26Z","commit_sha":"771254dabfa64607ee487f2d50431b1460c51726","commit_message":"maps: match 2 funcs","measures":{"fuzzy_match_percent":57.2952,"total_code":2879592,"matched_code":1649868,"matched_code_percent":57.295197,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4889,"matched_functions_percent":74.77821,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-20T19:50:22Z","commit_sha":"3fa9ac34fe41b11fd1b13c57f4eaa41c97a6f75d","commit_message":"map1_s05: func_800CF42C","measures":{"fuzzy_match_percent":57.267975,"total_code":2879592,"matched_code":1649084,"matched_code_percent":57.267975,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4887,"matched_functions_percent":74.74763,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-20T18:40:20Z","commit_sha":"73a01640a5560c86720bd61e71e4ff5e4767d9e7","commit_message":"maps: match/share `sharedFunc_800D23EC_0_s00`","measures":{"fuzzy_match_percent":57.237137,"total_code":2879592,"matched_code":1648196,"matched_code_percent":57.237137,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4886,"matched_functions_percent":74.73233,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-19T09:20:49Z","commit_sha":"b7d14eff4dd71e70494f82e90bcd9678c469d7f8","commit_message":"MAP5_S01: func_800D6CBC","measures":{"fuzzy_match_percent":56.780403,"total_code":2879592,"matched_code":1635044,"matched_code_percent":56.780403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4880,"matched_functions_percent":74.640564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-19T05:57:33Z","commit_sha":"d7a60ac36ea4156a6a5e909435290ad22ecec707","commit_message":"map4_s03: match 2 funcs","measures":{"fuzzy_match_percent":56.772766,"total_code":2879592,"matched_code":1634824,"matched_code_percent":56.772762,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4879,"matched_functions_percent":74.62527,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-19T02:53:20Z","commit_sha":"482fcfc8b35d60806ad5da939b0f0db3c746d542","commit_message":"map7_s02: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.761654,"total_code":2879592,"matched_code":1634504,"matched_code_percent":56.761654,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4877,"matched_functions_percent":74.59467,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-19T01:06:55Z","commit_sha":"17e5a3b9651dd4f13afa147f27cbc5f000fc5e27","commit_message":"map7_s01: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.64483,"total_code":2879592,"matched_code":1631140,"matched_code_percent":56.644833,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4876,"matched_functions_percent":74.579384,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T23:19:36Z","commit_sha":"5cad3d99f881b9d8ef10b00fce8f00b73e4a8fe0","commit_message":"map3_s03: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.56107,"total_code":2879592,"matched_code":1628728,"matched_code_percent":56.56107,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4875,"matched_functions_percent":74.56409,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T22:55:08Z","commit_sha":"3b1130c23e66bd6bd4406d1c7289ed3400117f76","commit_message":"map5_s02: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.526062,"total_code":2879592,"matched_code":1627720,"matched_code_percent":56.526066,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4874,"matched_functions_percent":74.54879,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T22:18:21Z","commit_sha":"1071f865bcd6aa376776a25bf5c9f3502bce283a","commit_message":"map7_s03: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.495922,"total_code":2879592,"matched_code":1626852,"matched_code_percent":56.495922,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4873,"matched_functions_percent":74.5335,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T21:58:08Z","commit_sha":"2d1262780f36f12ecad76f7e8d81b6b0fb6d8797","commit_message":"map6_s00: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.478,"total_code":2879592,"matched_code":1626336,"matched_code_percent":56.478,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4872,"matched_functions_percent":74.5182,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T16:33:46Z","commit_sha":"9fa73d4bff82b2108b189c8746a3a01a32581bed","commit_message":"MAP5_S01: func_800E828C","measures":{"fuzzy_match_percent":56.44105,"total_code":2879592,"matched_code":1625272,"matched_code_percent":56.44105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4870,"matched_functions_percent":74.48761,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T10:09:09Z","commit_sha":"cc7cd3c516c8528356793b2a27c1f6199e08265a","commit_message":"bodyprog: func_80089DF0\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":56.43105,"total_code":2879592,"matched_code":1624984,"matched_code_percent":56.43105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4869,"matched_functions_percent":74.47231,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T06:23:12Z","commit_sha":"bbbda9d7885ff6ba60e879b137e97bf168dc919a","commit_message":"Name global cutscene timer, comments","measures":{"fuzzy_match_percent":56.409657,"total_code":2879592,"matched_code":1624368,"matched_code_percent":56.409657,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4868,"matched_functions_percent":74.457016,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T05:32:38Z","commit_sha":"0b16915cdc8458035c73907949db5b93539dd4cc","commit_message":"Ninja fixups, add map5_s01 random bytes to postbuild","measures":{"fuzzy_match_percent":56.409657,"total_code":2879592,"matched_code":1624368,"matched_code_percent":56.409657,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4868,"matched_functions_percent":74.457016,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T04:33:18Z","commit_sha":"7fc97aa4d2c1594698a29757b10778c657f24b2c","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":56.409657,"total_code":2879592,"matched_code":1624368,"matched_code_percent":56.409657,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4868,"matched_functions_percent":74.457016,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T03:49:28Z","commit_sha":"15f5377903bc459282640da35f451f2b17beaf0d","commit_message":"map4_s03: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.409657,"total_code":2879592,"matched_code":1624368,"matched_code_percent":56.409657,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4868,"matched_functions_percent":74.457016,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T03:25:29Z","commit_sha":"88c4e67949132fc3d7f77928cb94c3c8f8c2acaa","commit_message":"map3_s04: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":56.386738,"total_code":2879592,"matched_code":1623708,"matched_code_percent":56.386738,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4867,"matched_functions_percent":74.44173,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T02:57:52Z","commit_sha":"462a8784f1f3458994b426c7eb80edd0d0bc6720","commit_message":"maps: match 2 `Map_WorldObjectsInit`, remove @hack","measures":{"fuzzy_match_percent":56.370487,"total_code":2879592,"matched_code":1623240,"matched_code_percent":56.370483,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4866,"matched_functions_percent":74.42643,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T02:14:17Z","commit_sha":"44565b785cfa6e3a123d687c62bbf6e1383ea3e9","commit_message":"fixup","measures":{"fuzzy_match_percent":56.354233,"total_code":2879592,"matched_code":1622772,"matched_code_percent":56.35423,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4864,"matched_functions_percent":74.39584,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T02:06:48Z","commit_sha":"998dd3eab953579116f1971fc889a00ed7a9d75e","commit_message":"Flags fixups, change `rotation_24`/`rotationSpeed_2C` to `SVECTOR3`","measures":{"fuzzy_match_percent":56.354233,"total_code":2879592,"matched_code":1622772,"matched_code_percent":56.35423,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4864,"matched_functions_percent":74.39584,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-18T01:46:43Z","commit_sha":"adf6a798ed511e49f6faa0e11afc6779ab470910","commit_message":"map3_s06: Map_WorldObjectsInit, add postbuild patch for random rodata bytes\n\nReplaced .sh with the .py script, couldn't seem to get splat to output\nthese random bytes into .s for us so postbuild it is","measures":{"fuzzy_match_percent":56.354233,"total_code":2879592,"matched_code":1622772,"matched_code_percent":56.35423,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4864,"matched_functions_percent":74.39584,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T22:23:54Z","commit_sha":"7a309bf39d696ad88ed8fd68062674589d02e1fa","commit_message":"maps: match `sharedFunc_800CEFD0_1_s02` in 2 maps","measures":{"fuzzy_match_percent":56.341175,"total_code":2879592,"matched_code":1622396,"matched_code_percent":56.34118,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4863,"matched_functions_percent":74.38055,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T21:42:19Z","commit_sha":"ee26832aab2e49015fa8b65998253fc646080e0c","commit_message":"MAP5_S01: func_800E9F08","measures":{"fuzzy_match_percent":56.29089,"total_code":2879592,"matched_code":1620948,"matched_code_percent":56.29089,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4861,"matched_functions_percent":74.34995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T21:18:20Z","commit_sha":"d28c5daacde91a0ce3c205392c03fa930ede7181","commit_message":"MAP5_S01: func_800EC2D8","measures":{"fuzzy_match_percent":56.285194,"total_code":2879592,"matched_code":1620784,"matched_code_percent":56.2852,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4860,"matched_functions_percent":74.334656,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T21:14:37Z","commit_sha":"f991a9e2c703390a5802f20e3156433676729362","commit_message":"map5_s00: func_800D6B00","measures":{"fuzzy_match_percent":56.278667,"total_code":2879592,"matched_code":1620596,"matched_code_percent":56.27867,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4859,"matched_functions_percent":74.31937,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T20:39:04Z","commit_sha":"714f20fb3106abd26138b8b873d55beb32432dce","commit_message":"map3_s06: func_800D0C14","measures":{"fuzzy_match_percent":56.206017,"total_code":2879592,"matched_code":1618504,"matched_code_percent":56.206017,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4858,"matched_functions_percent":74.30407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T20:05:30Z","commit_sha":"a441d87a9256bb3c9ba6161e7a4df0b0626c42a9","commit_message":"map7_s03: func_800E7380\n\nLast of the easy map7_s03 events, still a ton to go (200+ INCLUDE_ASM in\nmap7_s03_2.c ;_;)","measures":{"fuzzy_match_percent":56.10281,"total_code":2879592,"matched_code":1615532,"matched_code_percent":56.102806,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4857,"matched_functions_percent":74.28877,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T19:56:01Z","commit_sha":"5f4941f3520f060dc8126ac82c9571d5bdcc1b84","commit_message":"map7_s03: func_800E8D20","measures":{"fuzzy_match_percent":56.0585,"total_code":2879592,"matched_code":1614256,"matched_code_percent":56.058495,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4856,"matched_functions_percent":74.273476,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T19:44:09Z","commit_sha":"2c6b041f417ff5fe92b758e3bf595d9807f31b5b","commit_message":"fsqueue: fixups","measures":{"fuzzy_match_percent":56.011826,"total_code":2879592,"matched_code":1612912,"matched_code_percent":56.011826,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4855,"matched_functions_percent":74.25819,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T19:42:03Z","commit_sha":"0dc26eedb749e0e624a197f97239520e0927fb22","commit_message":"map7_s03: func_800E86BC","measures":{"fuzzy_match_percent":56.011826,"total_code":2879592,"matched_code":1612912,"matched_code_percent":56.011826,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4855,"matched_functions_percent":74.25819,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T18:29:14Z","commit_sha":"a8368eed246753e9f435405388894d366bdb9d21","commit_message":"map7_s03: func_800E787C","measures":{"fuzzy_match_percent":55.95501,"total_code":2879592,"matched_code":1611276,"matched_code_percent":55.95501,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4854,"matched_functions_percent":74.24289,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T17:41:16Z","commit_sha":"241a27da3f8654490687a9c685373ade4a0ce051","commit_message":"map7_s03: func_800E514C","measures":{"fuzzy_match_percent":55.828327,"total_code":2879592,"matched_code":1607628,"matched_code_percent":55.828327,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4853,"matched_functions_percent":74.22759,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T15:27:39Z","commit_sha":"0e5f204a904e442dcfb0aad9f8c610d66694b87b","commit_message":"map7_s03: func_800E62CC","measures":{"fuzzy_match_percent":55.67275,"total_code":2879592,"matched_code":1603148,"matched_code_percent":55.67275,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4852,"matched_functions_percent":74.212296,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T15:26:26Z","commit_sha":"161a3dfb62ceb3b09fe9d528f63f935899ea9f94","commit_message":"map7_s03: func_800E62CC","measures":{"fuzzy_match_percent":55.67275,"total_code":2879592,"matched_code":1603148,"matched_code_percent":55.67275,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4852,"matched_functions_percent":74.212296,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T12:08:09Z","commit_sha":"5acef77d2ed8c10c79e5d643273f77fd7bdb1379","commit_message":"MAP5_S01: func_800EC42C\n\nCo-authored-by: Dominik Peters <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":55.547035,"total_code":2879592,"matched_code":1599528,"matched_code_percent":55.547035,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4851,"matched_functions_percent":74.197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T08:07:32Z","commit_sha":"a31db11e426380a9de11b81c4666d26864ff8ebb","commit_message":"MAP5_S01: func_800ECC8C","measures":{"fuzzy_match_percent":55.483276,"total_code":2879592,"matched_code":1597692,"matched_code_percent":55.483276,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4850,"matched_functions_percent":74.18171,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T07:09:43Z","commit_sha":"e9f88b04cb53a71db5e717a9dfda0a771597ac15","commit_message":"bodyprog: sd splits","measures":{"fuzzy_match_percent":55.416183,"total_code":2879592,"matched_code":1595760,"matched_code_percent":55.416183,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4848,"matched_functions_percent":74.151115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":148,"complete_units":0}},{"timestamp":"2025-11-17T05:39:55Z","commit_sha":"37200c52c8b08755f17b1c16e18ebe823e8b5e4b","commit_message":"bodyprog: naming minor fix","measures":{"fuzzy_match_percent":55.416183,"total_code":2879592,"matched_code":1595760,"matched_code_percent":55.416183,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4848,"matched_functions_percent":74.151115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-17T05:30:09Z","commit_sha":"cf8e260414394318aad3fd2ce80c314146284ce0","commit_message":"bodyprog: audio system symbol recognition\n\nalso comes with some minor fixes or touch ups to the setup","measures":{"fuzzy_match_percent":55.416183,"total_code":2879592,"matched_code":1595760,"matched_code_percent":55.416183,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4848,"matched_functions_percent":74.151115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T19:36:06Z","commit_sha":"f75725600b47c274f4ef7aaf9bb2887bb78bc193","commit_message":"map7_s03: func_800E4714","measures":{"fuzzy_match_percent":55.416183,"total_code":2879592,"matched_code":1595760,"matched_code_percent":55.416183,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4848,"matched_functions_percent":74.151115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T16:20:25Z","commit_sha":"231e8c744b861d86e802684fa3180d93906af216","commit_message":"maps: fixup","measures":{"fuzzy_match_percent":55.325336,"total_code":2879592,"matched_code":1593144,"matched_code_percent":55.325336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4847,"matched_functions_percent":74.13582,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T16:15:19Z","commit_sha":"921c652a5db9b2f5cfe7b64060777b2c38a89187","commit_message":"maps: add `WorldObjectNoRotInit` macro","measures":{"fuzzy_match_percent":55.325336,"total_code":2879592,"matched_code":1593144,"matched_code_percent":55.325336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4847,"matched_functions_percent":74.13582,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T16:03:02Z","commit_sha":"9690491b74da056a1db114e3e09ef716129999b0","commit_message":"Fix build error","measures":{"fuzzy_match_percent":55.325336,"total_code":2879592,"matched_code":1593144,"matched_code_percent":55.325336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4847,"matched_functions_percent":74.13582,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T15:47:46Z","commit_sha":"61b192c2e4fd3e7e673045b7c2d889b0b060bf30","commit_message":"Minor deobfuscation","measures":{"fuzzy_match_percent":54.40015,"total_code":2879592,"matched_code":1368492,"matched_code_percent":47.523815,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4595,"matched_functions_percent":70.28143,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T15:23:01Z","commit_sha":"c60badb6146ac7b7888079252f26083d4707ac7d","commit_message":"Tidying pass, type conversions","measures":{"fuzzy_match_percent":55.325336,"total_code":2879592,"matched_code":1593144,"matched_code_percent":55.325336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4847,"matched_functions_percent":74.13582,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T14:29:43Z","commit_sha":"1934a1d8e6cdc1e4b8265ef21b9a1143ea4392d0","commit_message":"maps: add name arg to `WorldObjectSet`/`WorldObjectInit`","measures":{"fuzzy_match_percent":55.325336,"total_code":2879592,"matched_code":1593144,"matched_code_percent":55.325336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4847,"matched_functions_percent":74.13582,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T14:04:44Z","commit_sha":"03193575a1c1d6caf037574348655d89014cb4b4","commit_message":"map7_s02: func_800DC14C, merge Pose into WorldObjectDesc, add WorldObjectInit macro\n\nHad to merge pose fields into desc to match func, but there's still some things\nthat use the pose struct by itself, so had to leave that and the orig WorldObjectPoseInit\n\nHad to make new WorldObjectInit macro to handle the merged fields here, did notice that\nthe WorldObjectInit uses are always followed by WorldObject_ModelNameSet, could probably\nmerge that into the macro too.","measures":{"fuzzy_match_percent":55.325336,"total_code":2879592,"matched_code":1593144,"matched_code_percent":55.325336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4847,"matched_functions_percent":74.13582,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T13:45:00Z","commit_sha":"06820dabacbfa45acd6f8cdac97884bf3b6139b5","commit_message":"MAP2_S00: func_800DE11C","measures":{"fuzzy_match_percent":55.27047,"total_code":2879592,"matched_code":1591564,"matched_code_percent":55.27047,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4846,"matched_functions_percent":74.12053,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T13:37:08Z","commit_sha":"a92b858592a80ff2407f9b1a023a702934094211","commit_message":"MAP2_S00: func_800DC598\n\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":55.26283,"total_code":2879592,"matched_code":1591344,"matched_code_percent":55.26283,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4845,"matched_functions_percent":74.10523,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T12:56:07Z","commit_sha":"8227e0d3b2954c682a29ee1e95378799ebb9d3db","commit_message":"MAP2_S00: func_800DC67C","measures":{"fuzzy_match_percent":55.25491,"total_code":2879592,"matched_code":1591116,"matched_code_percent":55.254913,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4844,"matched_functions_percent":74.089935,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-16T12:28:33Z","commit_sha":"f8837cacadfab72fc77b53fe80cffdc9a61be377","commit_message":"MAP2_S00: func_800DC200","measures":{"fuzzy_match_percent":55.2513,"total_code":2879592,"matched_code":1591012,"matched_code_percent":55.2513,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4843,"matched_functions_percent":74.07464,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T15:27:41Z","commit_sha":"5c80d025bc0bc606000fa2cfca8ef4dc9e32367b","commit_message":"MAP2_S00: func_800D5974","measures":{"fuzzy_match_percent":55.241993,"total_code":2879592,"matched_code":1590744,"matched_code_percent":55.24199,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4842,"matched_functions_percent":74.05934,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T14:08:03Z","commit_sha":"3e2743695f7829c3116257a696dbd861aaeccfc9","commit_message":"map7_s03: func_800E3390","measures":{"fuzzy_match_percent":55.22352,"total_code":2879592,"matched_code":1590212,"matched_code_percent":55.22352,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4841,"matched_functions_percent":74.04405,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T12:52:50Z","commit_sha":"c3d3ec5404ecffe43291e093a2ba278a936f7a5f","commit_message":"map4_s05: func_800D6BC0","measures":{"fuzzy_match_percent":55.15365,"total_code":2879592,"matched_code":1588200,"matched_code_percent":55.153645,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4840,"matched_functions_percent":74.028755,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T12:45:11Z","commit_sha":"fc8854a7f677c3b4f036b79dd29e1a7a04d2bc8b","commit_message":"MAP2_S00: func_800DF710","measures":{"fuzzy_match_percent":55.096,"total_code":2879592,"matched_code":1586540,"matched_code_percent":55.096,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4839,"matched_functions_percent":74.01346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T12:23:51Z","commit_sha":"ab795cadfc9e44099b5325d4c20803395c91f826","commit_message":"MAP4_S04: func_800D14B0","measures":{"fuzzy_match_percent":55.08725,"total_code":2879592,"matched_code":1586288,"matched_code_percent":55.08725,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4838,"matched_functions_percent":73.99817,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T11:42:19Z","commit_sha":"036fd8204349dd082648b026e0885afcc15ebae8","commit_message":"bodyprog: `func_8007FDE0`\n\nLooks used for getting footstep sfx id?\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":55.06447,"total_code":2879592,"matched_code":1585632,"matched_code_percent":55.06447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4837,"matched_functions_percent":73.98287,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T11:31:14Z","commit_sha":"42c6fc32b87d5f0d7a274598f2aa5e5210f8fc1b","commit_message":"MAP4_S04: func_800D2D6C, func_800D2DF4","measures":{"fuzzy_match_percent":55.02071,"total_code":2879592,"matched_code":1584372,"matched_code_percent":55.020714,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4836,"matched_functions_percent":73.967575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T08:29:57Z","commit_sha":"9fdc89f99df283a4036b49bf85f43a9ebde77a89","commit_message":"MAP6_S03: func_800D7F24 => Map_RoomIdxGet","measures":{"fuzzy_match_percent":55.001682,"total_code":2879592,"matched_code":1583824,"matched_code_percent":55.001682,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4834,"matched_functions_percent":73.93698,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T08:17:28Z","commit_sha":"c5f9f8e29a6602a7d46ca1c7deee3e17eea2aeff","commit_message":"MAP6_S03: func_800D7F98","measures":{"fuzzy_match_percent":54.997654,"total_code":2879592,"matched_code":1583708,"matched_code_percent":54.997654,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4833,"matched_functions_percent":73.921684,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T05:50:16Z","commit_sha":"be32f137c3d3a09768e1e9f15698a638a6042e21","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":54.979454,"total_code":2879592,"matched_code":1583184,"matched_code_percent":54.979454,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4832,"matched_functions_percent":73.906395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-15T00:45:52Z","commit_sha":"623b9389a9a812c16f3c904be6ff213999670091","commit_message":"bodyprog: `flags_2290`","measures":{"fuzzy_match_percent":54.979454,"total_code":2879592,"matched_code":1583184,"matched_code_percent":54.979454,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4832,"matched_functions_percent":73.906395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T20:28:59Z","commit_sha":"3904247a239703658cc365fab97c070bff0c3b40","commit_message":"MAP6_S03: func_800D8818","measures":{"fuzzy_match_percent":54.979454,"total_code":2879592,"matched_code":1583184,"matched_code_percent":54.979454,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4832,"matched_functions_percent":73.906395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T20:00:56Z","commit_sha":"019bd75ff1c07c63ef122e5578e0dc366c99fc7f","commit_message":"MAP1_S01: func_800CBA38","measures":{"fuzzy_match_percent":54.965843,"total_code":2879592,"matched_code":1582792,"matched_code_percent":54.965843,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4831,"matched_functions_percent":73.8911,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T19:52:24Z","commit_sha":"aae031b136b9b718c8d59e544a0ba11a6c99df8b","commit_message":"MAP1_S01: func_800CB8A0","measures":{"fuzzy_match_percent":54.95723,"total_code":2879592,"matched_code":1582544,"matched_code_percent":54.95723,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4830,"matched_functions_percent":73.8758,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T17:34:59Z","commit_sha":"9e3c9d41fe504d311490de5e946c53f787f40d42","commit_message":"MAP1_S02: func_800D9EBC","measures":{"fuzzy_match_percent":54.94306,"total_code":2879592,"matched_code":1582136,"matched_code_percent":54.94306,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4829,"matched_functions_percent":73.86051,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T11:31:58Z","commit_sha":"06ea46005499a43c2eb3905879c4c6a77331787c","commit_message":"MAP1_S02: func_800DDA84","measures":{"fuzzy_match_percent":54.930977,"total_code":2879592,"matched_code":1581788,"matched_code_percent":54.93098,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4828,"matched_functions_percent":73.845215,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T11:04:16Z","commit_sha":"a0c86321e697619b07e3cbd508b97b4d5e3f0acc","commit_message":"tools/flags_fp_conv: add WorldObjectPose converter","measures":{"fuzzy_match_percent":54.770813,"total_code":2879592,"matched_code":1577176,"matched_code_percent":54.770817,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4827,"matched_functions_percent":73.82992,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T06:16:47Z","commit_sha":"44d6ac7b8299581e79dd5a2824e61d949a287686","commit_message":"map7_s02: `func_800E2DEC`","measures":{"fuzzy_match_percent":54.71803,"total_code":2879592,"matched_code":1575656,"matched_code_percent":54.71803,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4826,"matched_functions_percent":73.81462,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T06:11:21Z","commit_sha":"ddb6ef1a12d160fa4ca6677b9f082d93b9f8fdca","commit_message":"bodyprog: sound system recognition","measures":{"fuzzy_match_percent":54.673996,"total_code":2879592,"matched_code":1574388,"matched_code_percent":54.673992,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4825,"matched_functions_percent":73.799324,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T05:42:15Z","commit_sha":"87ef956d6654aa5c935c0c1ef24f740ed5872b8e","commit_message":"map6_s04: `func_800E219C`","measures":{"fuzzy_match_percent":54.673996,"total_code":2879592,"matched_code":1574388,"matched_code_percent":54.673992,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4825,"matched_functions_percent":73.799324,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T05:13:17Z","commit_sha":"4cff9e7c008b33841806c2ea8659fe40c192cb01","commit_message":"map5_s01: `func_800EBA40`","measures":{"fuzzy_match_percent":54.62482,"total_code":2879592,"matched_code":1572972,"matched_code_percent":54.62482,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4824,"matched_functions_percent":73.78403,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T04:30:19Z","commit_sha":"c3eb7c6ec52601912ea942f10f5fff36b5a07c9c","commit_message":"Update bodyprog_800348C0.c","measures":{"fuzzy_match_percent":54.580093,"total_code":2879592,"matched_code":1571684,"matched_code_percent":54.580093,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4823,"matched_functions_percent":73.76874,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T03:53:02Z","commit_sha":"85871da1f679d987e6d7b3d9cec74c47f7691f1d","commit_message":"map3_s05: `func_800D6D1C`","measures":{"fuzzy_match_percent":54.580093,"total_code":2879592,"matched_code":1571684,"matched_code_percent":54.580093,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4823,"matched_functions_percent":73.76874,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T03:27:41Z","commit_sha":"3bb8323d4238e0d3ed56ea2430a593d4c347d1a4","commit_message":"map7_s02: `func_800DC954`","measures":{"fuzzy_match_percent":54.54009,"total_code":2879592,"matched_code":1570532,"matched_code_percent":54.540085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4822,"matched_functions_percent":73.75344,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-14T02:34:44Z","commit_sha":"31241f4b9858e7ecd91766f24849ab85f31c62e5","commit_message":"map6_s04: `func_800E2950`","measures":{"fuzzy_match_percent":54.507442,"total_code":2879592,"matched_code":1569592,"matched_code_percent":54.507446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4821,"matched_functions_percent":73.738144,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-13T18:25:30Z","commit_sha":"af5fba9e6df0167c5cb77788b8cf3a1f1c200254","commit_message":"tools: use objdiff exe from github actions","measures":{"fuzzy_match_percent":54.477997,"total_code":2879592,"matched_code":1568744,"matched_code_percent":54.477997,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4820,"matched_functions_percent":73.722855,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-13T17:20:25Z","commit_sha":"af4adacbccf394092ce490ab90b0cc39630251ee","commit_message":"bodyprog: suffix fixup","measures":{"fuzzy_match_percent":54.477997,"total_code":2879592,"matched_code":1568744,"matched_code_percent":54.477997,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4820,"matched_functions_percent":73.722855,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-13T16:14:08Z","commit_sha":"75be33b8c6262fce46f3ab32c1459ce570e9dabc","commit_message":"bodyprog: fix Gfx_Inventory_2dBackgroundDraw","measures":{"fuzzy_match_percent":54.4723,"total_code":2879592,"matched_code":1568580,"matched_code_percent":54.472298,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4818,"matched_functions_percent":73.69226,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-13T04:52:31Z","commit_sha":"10a7bfb0e12a2abb6fff5ce0c782b097fc5d6486","commit_message":"bodyprog: fixups, add func symbol suffixes","measures":{"fuzzy_match_percent":54.472282,"total_code":2879592,"matched_code":1563376,"matched_code_percent":54.29158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4817,"matched_functions_percent":73.67697,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-13T04:32:17Z","commit_sha":"657bbfccb73df495bc400db373ee294eba547bbb","commit_message":"bodyprog: `func_80038354` `func_800382EC`\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":54.472282,"total_code":2879592,"matched_code":1563376,"matched_code_percent":54.29158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4817,"matched_functions_percent":73.67697,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T22:30:42Z","commit_sha":"b271ad4daeaa33d26219c01fbf7da46511512949","commit_message":"map5_s00: match 4 funcs, misc fixups","measures":{"fuzzy_match_percent":54.411304,"total_code":2879592,"matched_code":1561620,"matched_code_percent":54.230602,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4817,"matched_functions_percent":73.67697,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T17:10:12Z","commit_sha":"15c4b50b8df586a6a9040e2dc90b67434e22ebd3","commit_message":"maps: match 5 funcs","measures":{"fuzzy_match_percent":54.300037,"total_code":2879592,"matched_code":1558416,"matched_code_percent":54.11933,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4813,"matched_functions_percent":73.61578,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T16:22:20Z","commit_sha":"9be4be8ccf2493320cc03d30f9858a452287b33f","commit_message":"map3_s05: func_800D5A98, minor m2c fix\n\nChanged `&(SVECTOR3){}` to `&(SVECTOR3){ 0, 0, 0 }` to fix m2c context\nissue","measures":{"fuzzy_match_percent":54.171406,"total_code":2879592,"matched_code":1554712,"matched_code_percent":53.990704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4808,"matched_functions_percent":73.539314,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T16:20:56Z","commit_sha":"0c7509e9fb4dcc517695fce9e8d3e72c36135001","commit_message":"map3_s05: `func_800D5A98`, minor m2c fix\n\nChanged `&(VECTOR3){}` to `&(SVECTOR3){ 0, 0, 0 }` to fix m2c context\nissue","measures":{"fuzzy_match_percent":54.171406,"total_code":2879592,"matched_code":1554712,"matched_code_percent":53.990704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4808,"matched_functions_percent":73.539314,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T16:09:17Z","commit_sha":"20c740b95ef6345904330451b11eee90fc7aa78e","commit_message":"Name 5 symbols\n\nsharedFunc_800D20E4_0_s00 -> Player_ControlFreeze\nsharedFunc_800D2244_0_s00 -> Player_ControlUnfreeze\nfunc_8003D95C -> WorldGfx_CharaModelProcessAllLoads\nfunc_8003D9C8 -> WorldGfx_CharaModelProcessLoad\nfunc_80088D0C -> Chara_ProcessLoads","measures":{"fuzzy_match_percent":54.153625,"total_code":2879592,"matched_code":1554200,"matched_code_percent":53.972923,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4807,"matched_functions_percent":73.52402,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T15:44:51Z","commit_sha":"b44cae81db3e1da62886b82608660285bc28c05e","commit_message":"map4_s04: `func_800D23E4`, speedup make checksum\n\n`make build` would spawn new make to run `make checksum`, which would\nneed to run `get_yaml_path` for CONFIG_FILES again, get_yaml_path is\npretty slow for all our yamls though\n\nChanged checksum to depend on target files + made build call into it","measures":{"fuzzy_match_percent":54.153625,"total_code":2879592,"matched_code":1554200,"matched_code_percent":53.972923,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4807,"matched_functions_percent":73.52402,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T10:53:36Z","commit_sha":"ec6ccc909074a9fe89bb3c00625cabbfd0c14f0e","commit_message":"fixups","measures":{"fuzzy_match_percent":54.068893,"total_code":2879592,"matched_code":1551760,"matched_code_percent":53.88819,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4806,"matched_functions_percent":73.50871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T10:50:37Z","commit_sha":"378147528c5c0d6937a8b5c27077c4c2854f5bf6","commit_message":"map4_s03: match 4 funcs","measures":{"fuzzy_match_percent":54.068893,"total_code":2879592,"matched_code":1551760,"matched_code_percent":53.88819,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4806,"matched_functions_percent":73.50871,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T08:28:55Z","commit_sha":"4a2f996ad4ea7639b15bcbb2491e4f5ec59c6d96","commit_message":"map3_s03: `func_800D2CDC`","measures":{"fuzzy_match_percent":53.933872,"total_code":2879592,"matched_code":1547872,"matched_code_percent":53.753174,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4802,"matched_functions_percent":73.44754,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T08:11:39Z","commit_sha":"f256e1a86342af5bf58dcbb889d3ce6c88b50edc","commit_message":"map3_s03: `func_800D27F4`","measures":{"fuzzy_match_percent":53.8972,"total_code":2879592,"matched_code":1546816,"matched_code_percent":53.7165,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4801,"matched_functions_percent":73.43224,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T08:00:06Z","commit_sha":"ad34d11fdf5b16284717e102f14a7420cabf5dc4","commit_message":"map2_s00: `func_800E9470`","measures":{"fuzzy_match_percent":53.859695,"total_code":2879592,"matched_code":1545736,"matched_code_percent":53.678997,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4800,"matched_functions_percent":73.41695,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T07:26:23Z","commit_sha":"e4e3bdaa34c35789e0cbc715a92f73b8c92d96bf","commit_message":"map1_s06: `func_800D5614`","measures":{"fuzzy_match_percent":53.846085,"total_code":2879592,"matched_code":1545344,"matched_code_percent":53.665382,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4799,"matched_functions_percent":73.40166,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T07:13:24Z","commit_sha":"252fe8937c7abdd7d1c76b7a1222dbf0cbececd4","commit_message":"map1_s05: `func_800D49AC`","measures":{"fuzzy_match_percent":53.79705,"total_code":2879592,"matched_code":1543932,"matched_code_percent":53.616344,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4798,"matched_functions_percent":73.38636,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T06:57:58Z","commit_sha":"0aae793b85e5b0f0c0141146065b351fcc5c1738","commit_message":"bodyprog: sound system symbol recognition and deobfuscation","measures":{"fuzzy_match_percent":53.76649,"total_code":2879592,"matched_code":1543052,"matched_code_percent":53.585785,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4797,"matched_functions_percent":73.371056,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T06:54:44Z","commit_sha":"31cdb549453b55e20c68cee2f3bc9601dcff62f5","commit_message":"map1_s02: `MapEvent_GameTrialOver`","measures":{"fuzzy_match_percent":53.76649,"total_code":2879592,"matched_code":1543052,"matched_code_percent":53.585785,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4797,"matched_functions_percent":73.371056,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-12T03:42:19Z","commit_sha":"56f84a21bae507c46bef28c482cda385152f493f","commit_message":"Ninja_config.py: specific overlay regeneration fixes [skip cl]","measures":{"fuzzy_match_percent":53.73982,"total_code":2879592,"matched_code":1542284,"matched_code_percent":53.559113,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4796,"matched_functions_percent":73.35577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T19:09:50Z","commit_sha":"ffe0d8af63b9ccb1fddd2a2f3aa7421768b8bc5b","commit_message":"temp symbol suffix fix\n\nnow we go 90make objdiff-config ENG=1 -j16make objdiff-config ENG=1 -j16make objdiff-config ENG=1 -j16make objdiff-config ENG=1 -j16","measures":{"fuzzy_match_percent":53.73982,"total_code":2879592,"matched_code":1542284,"matched_code_percent":53.559113,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4796,"matched_functions_percent":73.35577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T18:37:27Z","commit_sha":"b000864739c9d49a77d07e83b7a51e994b0a2ae2","commit_message":"sharedFunc_800CFFF8_0_s00 for all maps","measures":{"fuzzy_match_percent":53.582436,"total_code":2879592,"matched_code":1537752,"matched_code_percent":53.401733,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4795,"matched_functions_percent":73.34047,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T18:11:28Z","commit_sha":"fb7b4ac0b2aa5608720a306ce2269291fe82a48e","commit_message":"MAP1_S03: sharedFunc_800CFFF8_0_s00","measures":{"fuzzy_match_percent":53.504784,"total_code":2879592,"matched_code":1535516,"matched_code_percent":53.32408,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4785,"matched_functions_percent":73.187515,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T17:16:06Z","commit_sha":"3eba80ea60e8247c537864eb830737233a787c86","commit_message":"bodyprog: func_80037F24\n\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":53.49812,"total_code":2879592,"matched_code":1535324,"matched_code_percent":53.317417,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4784,"matched_functions_percent":73.172226,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T15:26:48Z","commit_sha":"811f46e93183e78ef97d7f581102da14980331a7","commit_message":"bodyprog: add weapon ID comments to `D_80028B94`","measures":{"fuzzy_match_percent":53.466587,"total_code":2879592,"matched_code":1534416,"matched_code_percent":53.285885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4783,"matched_functions_percent":73.15693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T14:59:15Z","commit_sha":"ba8d57a21f4dd097b39045d35389e201937bbd4c","commit_message":"bodyprog: decode `D_80028B94`","measures":{"fuzzy_match_percent":53.466587,"total_code":2879592,"matched_code":1534416,"matched_code_percent":53.285885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4783,"matched_functions_percent":73.15693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T14:47:39Z","commit_sha":"b2d204e66924d0ed9b729dbb337cc7c24c2eedab","commit_message":"bodyprog: `func_800706E4`\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":53.466587,"total_code":2879592,"matched_code":1534416,"matched_code_percent":53.285885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4783,"matched_functions_percent":73.15693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T13:43:38Z","commit_sha":"99af5e2da54634336ea33df727a1c2a3b28d23c0","commit_message":"Fixups","measures":{"fuzzy_match_percent":53.42547,"total_code":2879592,"matched_code":1533232,"matched_code_percent":53.244762,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4782,"matched_functions_percent":73.14163,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T11:52:06Z","commit_sha":"32ad9b37f6bccbbeb08fa2eb4423d6e6a7fdae54","commit_message":"MAP1_S03: func_800CDCE0, func_800CE0CC","measures":{"fuzzy_match_percent":53.42547,"total_code":2879592,"matched_code":1533232,"matched_code_percent":53.244762,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4782,"matched_functions_percent":73.14163,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T10:57:53Z","commit_sha":"856c5591cd2996d7e77926d9036552179ec6ae91","commit_message":"MAP1_S03: func_800DA4D4","measures":{"fuzzy_match_percent":53.385323,"total_code":2879592,"matched_code":1532076,"matched_code_percent":53.20462,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4780,"matched_functions_percent":73.111046,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T10:51:46Z","commit_sha":"c48b561ee285341105cb01693b4bbd83fe488205","commit_message":"MAP1_S03: func_800DA7F4","measures":{"fuzzy_match_percent":53.373238,"total_code":2879592,"matched_code":1531728,"matched_code_percent":53.19254,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4779,"matched_functions_percent":73.09575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T10:44:27Z","commit_sha":"8a51b8b824beb2485f91db9cd6fe4f3e06296e7d","commit_message":"MAP1_S03: func_800DAA28","measures":{"fuzzy_match_percent":53.361153,"total_code":2879592,"matched_code":1531380,"matched_code_percent":53.18045,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4777,"matched_functions_percent":73.065155,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T10:36:17Z","commit_sha":"87e3e77fb9b4f5382c302b77b1a479279bff9a50","commit_message":"MAP1_S03: func_800DABC4","measures":{"fuzzy_match_percent":53.346848,"total_code":2879592,"matched_code":1530968,"matched_code_percent":53.166145,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4776,"matched_functions_percent":73.04986,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T10:12:30Z","commit_sha":"d2e2bb07bc3c0bbdab26b27c0723c25b27452a45","commit_message":"MAP1_S03: func_800DBEC8","measures":{"fuzzy_match_percent":53.317257,"total_code":2879592,"matched_code":1530116,"matched_code_percent":53.13656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4775,"matched_functions_percent":73.03457,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T09:43:28Z","commit_sha":"c8918868dfc41d1e6dbc23fcf5c981fb2fcdf278","commit_message":"MAP1_S03: func_800DC0F8","measures":{"fuzzy_match_percent":53.297813,"total_code":2879592,"matched_code":1529556,"matched_code_percent":53.117107,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4774,"matched_functions_percent":73.01927,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T09:34:32Z","commit_sha":"0f4bd704c1faaeb19ee3955a8a948d9eae961826","commit_message":"MAP1_S03: func_800DC310","measures":{"fuzzy_match_percent":53.280727,"total_code":2879592,"matched_code":1529064,"matched_code_percent":53.10002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4773,"matched_functions_percent":73.003975,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T07:00:21Z","commit_sha":"45fe7fc0b566bec01986264cbf6daa88986e3423","commit_message":"Bodyprog: Audio system symbol recognition and arbitrary declarations fixes","measures":{"fuzzy_match_percent":53.20516,"total_code":2879592,"matched_code":1526888,"matched_code_percent":53.02446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4770,"matched_functions_percent":72.95809,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T04:24:49Z","commit_sha":"a72fd607e2cd7e9bde7e2f9d0604d65a1548e803","commit_message":"MAP0_S02 compilation fix","measures":{"fuzzy_match_percent":53.20516,"total_code":2879592,"matched_code":1526888,"matched_code_percent":53.02446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4770,"matched_functions_percent":72.95809,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T03:09:27Z","commit_sha":"1bd3a550ca2065bd24b40782c7734b8af83a7761","commit_message":"Fixed check test","measures":{"fuzzy_match_percent":53.20516,"total_code":2879592,"matched_code":1526888,"matched_code_percent":53.02446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4770,"matched_functions_percent":72.95809,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T03:05:21Z","commit_sha":"01ef777ff9631713465ddb2a7868351717bb4f93","commit_message":"Repository Renovation: Added Ninja support, Makefile changes, Wiki created and Logo! (#458)\n\n* Adding ninja support for the project attemp (commit 1)\n\n* Adding ninja support for the project attemp (commit 2)\n\n* Adding ninja support for the project attemp (commit 3)\n\nI got it to work :3\n\n* Adding ninja support to the project - Beautifying the code 1\n\n* Adding ninja support to the project - Beautifying the code 2\n\n* Adding ninja support to the project - Windows support 1\n\nGOT IT TO COMPILE LET'S GOOOOOOOOOOOOOOOOO, now I'm going to test if this works in Linux/WSL and fix anything I broke, after that I will try to build bodyprog in Windows as it's not as simple like stream or main as in that case it requires iconv and I need to find a Windows counterpart for that\n\n* Adding ninja support to the project - Windows support 2\n\nEVERYTHING COMPILES NOW LET'S GOOOOOOOOOOOOOOOOOOOOOOOOOOO (still missing postbuild script so the FMVs overlay and engine matches ;-;)\n\n* Adding ninja support to the project - Windows support 3\n\n* Adding ninja support to the project - Fixes 1\n\n* Adding ninja support to the project - Fixes 2\n\nI forgot what I did. Now I'm investigating an issue that causes bodyprog to missmatch on windows and also make unable to insert missing rodata information in `bodyprog_800706E4.c`\n\n* Adding ninja support to the project - Windows support 4\n\n* Adding ninja support to the project - Windows support 4.1\n\nda forgotten one\n\n* Adding ninja support to the project - Windows support 5\n\nReplaced postbuild batch script to Python script due performance\n\n* Adding ninja support to the project - Fixes 3\n\nAdded an option individually work in each overlay or in a set overlays\n\n* Adding ninja support to the project - Fixes 4\n\n* Adding ninja support to the project - Fixes 5\n\nThe objdiff takeout\n\n* Adding ninja support to the project - Fixes 5\n\nFixed objdiff ninja generation for Linux\n\n* Adding ninja support to the project - Fixes 6\n\n* Adding ninja support to the project - Features idk + 1\n\nAdded partial support for appending new overlays to the build files and regenerating them. Only supported for Objdiff compilation\n\n* Adding ninja support to the project - Features idk + 2\n\nThe ninjas broke me update\n\n* Adding ninja support to the project - Features idk + 2.1\n\n* Adding ninja support to the project - Features idk + 3\n\n* Adding ninja support to the project - Features idk + 4\n\n* Adding ninja support to the project - Fixes 7\n\n* Makefile adjustments - Commit 1\n\n* Makefile adjustments - Commit 2\n\n* Makefile adjustments - Commit 3\n\n* Makefile adjustments - Commit 4\n\n* Makefile adjustments - Commit 5\n\n* Misc adjustments - Commit 1\n\n* Misc adjustments - Commit 2\n\nAdded GCC compiler for m2ctx.py to work in windows. Hope we don't ended getting take down because of this stuff.\n\n* Misc adjustments - Commit 3\n\n* Misc adjustments - Commit 4\n\n* Misc adjustments - Commit 5\n\n* Misc adjustments - Commit 6\n\n* Misc adjustments - Commit 7\n\nThanks emoose for pointing this out\n\n* Misc adjustments - Commit 7.1","measures":{"fuzzy_match_percent":53.20516,"total_code":2879592,"matched_code":1526888,"matched_code_percent":53.02446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4770,"matched_functions_percent":72.95809,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-11T00:12:43Z","commit_sha":"ae53db7869fb704aa426c0b4966ba8d0af019a3c","commit_message":"map1_s02: `func_800DB368` `func_800DBB7C`","measures":{"fuzzy_match_percent":53.20516,"total_code":2879592,"matched_code":1526888,"matched_code_percent":53.02446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4770,"matched_functions_percent":72.95809,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T23:07:41Z","commit_sha":"960c9a22f56e3831f09ec9e45705bdd7b75b61e4","commit_message":"map1_s02: `func_800DCF00`","measures":{"fuzzy_match_percent":53.097366,"total_code":2879592,"matched_code":1523784,"matched_code_percent":52.916664,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4768,"matched_functions_percent":72.9275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T21:50:55Z","commit_sha":"4c58fa470ac748ed4f193410a843e5e8b1b1285a","commit_message":"map0_s00: move rodata to func","measures":{"fuzzy_match_percent":53.07042,"total_code":2879592,"matched_code":1523008,"matched_code_percent":52.889717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4767,"matched_functions_percent":72.9122,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T18:47:59Z","commit_sha":"acf6e21e25f1fe4a40dc124ce23e8f2550d373a5","commit_message":"map5_s03: `Map_WorldObjectsInit`","measures":{"fuzzy_match_percent":53.07042,"total_code":2879592,"matched_code":1523008,"matched_code_percent":52.889717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4767,"matched_functions_percent":72.9122,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T18:09:37Z","commit_sha":"b47e827ad1c6952e5dbd52b59e8ccd266f4748fd","commit_message":"map6_s01: move rodata to funcs","measures":{"fuzzy_match_percent":53.058056,"total_code":2879592,"matched_code":1522652,"matched_code_percent":52.877354,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4766,"matched_functions_percent":72.89691,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T17:51:59Z","commit_sha":"84ee178882a62ac0a0db7c18c3c5291408ea5dfb","commit_message":"tools: add FP_ANGLE support to flags_fp_conv, FP rounding improvement\n\nThere's still a minor issue with certain floats, where python outputs as\nsomething like 34.0000000001 instead of just 34\nNot sure of a good way to fix it yet, easy enough to just remove\nmanually","measures":{"fuzzy_match_percent":53.058056,"total_code":2879592,"matched_code":1522652,"matched_code_percent":52.877354,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4766,"matched_functions_percent":72.89691,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T17:43:21Z","commit_sha":"91fbb17d802c356a6fce003034fed9fc652c267c","commit_message":"map6_s02: `Map_WorldObjectsInit`","measures":{"fuzzy_match_percent":53.058056,"total_code":2879592,"matched_code":1522652,"matched_code_percent":52.877354,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4766,"matched_functions_percent":72.89691,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T15:33:51Z","commit_sha":"594f1ad2c8c149ea47fbbc202b344d9ed718a3ca","commit_message":"bodyprog: func_8008BF84","measures":{"fuzzy_match_percent":53.051388,"total_code":2879592,"matched_code":1522460,"matched_code_percent":52.870686,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4765,"matched_functions_percent":72.881615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T14:13:29Z","commit_sha":"b2b2c79b213911f0a1cb829dbeb37060dc8e832b","commit_message":"Deobfuscation, reformat enums","measures":{"fuzzy_match_percent":52.961514,"total_code":2879592,"matched_code":1519872,"matched_code_percent":52.78081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4764,"matched_functions_percent":72.86632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T08:28:37Z","commit_sha":"a4acafc315aa2ce01d1cc12bc03bdf8b6804dff1","commit_message":"Prepare event state enums","measures":{"fuzzy_match_percent":52.961514,"total_code":2879592,"matched_code":1519872,"matched_code_percent":52.78081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4764,"matched_functions_percent":72.86632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T07:55:46Z","commit_sha":"34023c18f586265af633096f21dfa04acde8bf46","commit_message":"Fix typo","measures":{"fuzzy_match_percent":52.961514,"total_code":2879592,"matched_code":1519872,"matched_code_percent":52.78081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4764,"matched_functions_percent":72.86632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T07:47:49Z","commit_sha":"afde1bd5c3cfab0e040ab99d6087d66abb8488ca","commit_message":"`func_800E2CA0` -> `MapEvent_CutsceneCybilDeath`\n\nCo-Authored-By: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":52.96109,"total_code":2879592,"matched_code":1518428,"matched_code_percent":52.730667,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4763,"matched_functions_percent":72.85103,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T06:04:58Z","commit_sha":"dd3d72348fa98f5932caadbdb22906eb2b883a67","commit_message":"Tidying pass, demagicking","measures":{"fuzzy_match_percent":52.961514,"total_code":2879592,"matched_code":1519872,"matched_code_percent":52.78081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4764,"matched_functions_percent":72.86632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-10T01:01:57Z","commit_sha":"270e065102744c7da720e54d41e1ce3caa318127","commit_message":"bin2c: support decoding multi-dimensional arrays","measures":{"fuzzy_match_percent":52.961514,"total_code":2879592,"matched_code":1519872,"matched_code_percent":52.78081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4764,"matched_functions_percent":72.86632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T23:30:26Z","commit_sha":"7212ba801395e551432579933b9c728455e8ed44","commit_message":"(void) fixups","measures":{"fuzzy_match_percent":52.961514,"total_code":2879592,"matched_code":1519872,"matched_code_percent":52.78081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4764,"matched_functions_percent":72.86632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T22:23:08Z","commit_sha":"1d2c28b12bc0ba9024d287da1d40f3a4aaf6282d","commit_message":"map6_s02: func_800D0500","measures":{"fuzzy_match_percent":52.961514,"total_code":2879592,"matched_code":1519872,"matched_code_percent":52.78081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4764,"matched_functions_percent":72.86632,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T20:50:12Z","commit_sha":"93c513117746c40251ad0d97f68c2947dab8bbc8","commit_message":"bodyprog: func_80089A30","measures":{"fuzzy_match_percent":52.8615,"total_code":2879592,"matched_code":1516992,"matched_code_percent":52.680798,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4763,"matched_functions_percent":72.85103,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T20:43:11Z","commit_sha":"cd7952c51e952217dec4b658eb834d3090e39db5","commit_message":"map7: match AnimUpdate funcs","measures":{"fuzzy_match_percent":52.847885,"total_code":2879592,"matched_code":1516600,"matched_code_percent":52.667183,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4762,"matched_functions_percent":72.83573,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T19:49:44Z","commit_sha":"d9cb3c2a8795dd267ed6808698b9a558bd74135b","commit_message":"bodyprog: func_80089034","measures":{"fuzzy_match_percent":52.840385,"total_code":2879592,"matched_code":1516384,"matched_code_percent":52.659683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4759,"matched_functions_percent":72.78984,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T19:10:44Z","commit_sha":"f149a4d6f6dcfcdcfededbe0ab55ca6b0c529099","commit_message":"fixup","measures":{"fuzzy_match_percent":52.837193,"total_code":2879592,"matched_code":1516292,"matched_code_percent":52.65649,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4758,"matched_functions_percent":72.77454,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T19:07:46Z","commit_sha":"8280d227310dde0703ec33dd851adfc21c77996d","commit_message":"Add (void) to func args in .c files\n\nJust replaced `() //` -> `(void) //`, might be some missing","measures":{"fuzzy_match_percent":52.837193,"total_code":2879592,"matched_code":1516292,"matched_code_percent":52.65649,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4758,"matched_functions_percent":72.77454,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T19:04:05Z","commit_sha":"47b5511f674c8564a53af56398c455aba3451862","commit_message":"MAP1_S03: func_800DCDDC","measures":{"fuzzy_match_percent":52.837193,"total_code":2879592,"matched_code":1516292,"matched_code_percent":52.65649,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4758,"matched_functions_percent":72.77454,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T18:51:31Z","commit_sha":"178c813cedd15916805c33386fec9ecba6bed7d8","commit_message":"headers: add (void) to func args (TODO: .c files)\n\nUsually seems to help prevent m2c from adding fake args to func calls\n\nNeed to update .c files for it to work better, if .c ends up inside ctx\nwithout (void) it seems to let m2c add fake ones again...","measures":{"fuzzy_match_percent":52.78552,"total_code":2879592,"matched_code":1514804,"matched_code_percent":52.604813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4757,"matched_functions_percent":72.759254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T18:35:04Z","commit_sha":"2e013c0720f6e71dd5250dd336b24412c70de7e3","commit_message":"MAP1_S03: func_800DD3AC","measures":{"fuzzy_match_percent":52.78552,"total_code":2879592,"matched_code":1514804,"matched_code_percent":52.604813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4757,"matched_functions_percent":72.759254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T18:23:16Z","commit_sha":"2f1e7aa1f490b75b4e1d9a9881e5d887b5626f16","commit_message":"map6_s02: func_800CF0B8, fixups","measures":{"fuzzy_match_percent":52.760098,"total_code":2879592,"matched_code":1514072,"matched_code_percent":52.57939,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4756,"matched_functions_percent":72.74396,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T17:00:05Z","commit_sha":"257d7b97815b94b335d6ef191c4f95e0ce08a133","commit_message":"map5_s03: decode header\n\nThis is the map with the newspaper event flag issue, the `mapEvents_24`\npointer points to s_EventParams which can be patched to fix it.\n\nRight now s_EventParams has too many unk fields to be worth decoding\nthough, MapExaminer has a few named, but maybe best to wait till we find\ncode that's making use of them","measures":{"fuzzy_match_percent":52.663277,"total_code":2879592,"matched_code":1511284,"matched_code_percent":52.482574,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4755,"matched_functions_percent":72.72866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T16:47:53Z","commit_sha":"ee809d31f676dec52a28a05947630c98b0da6cb7","commit_message":"MAP1_S03: func_800DD688","measures":{"fuzzy_match_percent":52.663277,"total_code":2879592,"matched_code":1511284,"matched_code_percent":52.482574,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4755,"matched_functions_percent":72.72866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T15:10:35Z","commit_sha":"93dc7cda5cd4d5811a32f67473bf93e792ec556f","commit_message":"MAP1_S03: func_800DE828","measures":{"fuzzy_match_percent":52.506588,"total_code":2879592,"matched_code":1506772,"matched_code_percent":52.325886,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4753,"matched_functions_percent":72.698074,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T12:43:45Z","commit_sha":"932daf7e3baea81166475fbbea06ea0b4db9cecc","commit_message":"sharedFunc_800D6EC4_0_s01\n\nCo-authored-by: ser-pounce <655122+ser-pounce@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":52.441578,"total_code":2879592,"matched_code":1504900,"matched_code_percent":52.260876,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4752,"matched_functions_percent":72.68278,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T02:21:20Z","commit_sha":"97cb3ca227612f49cddbc68a38c25fab68a8340b","commit_message":"Name struct field","measures":{"fuzzy_match_percent":52.315727,"total_code":2879592,"matched_code":1501276,"matched_code_percent":52.135025,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4746,"matched_functions_percent":72.591,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T02:13:51Z","commit_sha":"96768a57cc2e45f9266813ff805f23ed647f826c","commit_message":"Demagicking","measures":{"fuzzy_match_percent":52.315727,"total_code":2879592,"matched_code":1501276,"matched_code_percent":52.135025,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4746,"matched_functions_percent":72.591,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-09T00:34:40Z","commit_sha":"625ec17ee92e825cfa105f66013265214d96557c","commit_message":"sharedFunc_800D3508_0_s01\n\nmake sharedFunc_800D2FB4_0_s01","measures":{"fuzzy_match_percent":52.315727,"total_code":2879592,"matched_code":1501276,"matched_code_percent":52.135025,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4746,"matched_functions_percent":72.591,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T21:09:10Z","commit_sha":"062f8f4777404330ecdd63604d585837f42584da","commit_message":"bin2c: enum & pointer-size fixups, allow reading args from file","measures":{"fuzzy_match_percent":52.25405,"total_code":2879592,"matched_code":1499500,"matched_code_percent":52.07335,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4740,"matched_functions_percent":72.49924,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T20:47:17Z","commit_sha":"b56b7d311e9bcabd0adc6aff1f274b72cc99313a","commit_message":"MAP6_S04: func_800E12D0\n\nCo-authored-by: ser-pounce <655122+ser-pounce@users.noreply.github.com>","measures":{"fuzzy_match_percent":52.25405,"total_code":2879592,"matched_code":1499500,"matched_code_percent":52.07335,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4740,"matched_functions_percent":72.49924,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T20:18:28Z","commit_sha":"fc2dce4a3c7a8d76e07a42222e107bb02218418b","commit_message":"maps: decode `roadDataList_3CC` fields","measures":{"fuzzy_match_percent":52.23141,"total_code":2879592,"matched_code":1498848,"matched_code_percent":52.05071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4739,"matched_functions_percent":72.48394,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T18:18:23Z","commit_sha":"4b35e35be9156038dcc5c42e96d04c22a4b45714","commit_message":"bin2c: add --single-line for arrays, add handling for s_AnimInfo fields","measures":{"fuzzy_match_percent":52.23141,"total_code":2879592,"matched_code":1498848,"matched_code_percent":52.05071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4739,"matched_functions_percent":72.48394,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T17:14:55Z","commit_sha":"54bc8f033bf9c1306d82454724a66e051143a82d","commit_message":"bodyprog: func_8007E8C0","measures":{"fuzzy_match_percent":52.23141,"total_code":2879592,"matched_code":1498848,"matched_code_percent":52.05071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4739,"matched_functions_percent":72.48394,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T17:08:01Z","commit_sha":"5e354ffb233b587f5438887fcd1ff958cebe4c6e","commit_message":"map2_s04: decode header","measures":{"fuzzy_match_percent":52.22238,"total_code":2879592,"matched_code":1498588,"matched_code_percent":52.04168,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4738,"matched_functions_percent":72.46864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T16:25:44Z","commit_sha":"a7daf05eda06753b1aa52cae59b471429d8bcf1a","commit_message":"map2_s01/map2_s03: decode headers","measures":{"fuzzy_match_percent":52.22238,"total_code":2879592,"matched_code":1498588,"matched_code_percent":52.04168,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4738,"matched_functions_percent":72.46864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T14:30:14Z","commit_sha":"7962c66f017d30d390fc32d858fe25bb9becca5b","commit_message":"bodyprog: func_80070CF0\n\nCo-authored-by: fmil95 <fmil95@users.noreply.github.com>\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":52.22238,"total_code":2879592,"matched_code":1498588,"matched_code_percent":52.04168,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4738,"matched_functions_percent":72.46864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T14:10:12Z","commit_sha":"66f18b49d8347bb5b03d9a9bf3648c85553f965b","commit_message":"map1_s04: decode header","measures":{"fuzzy_match_percent":52.21349,"total_code":2879592,"matched_code":1498332,"matched_code_percent":52.032787,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4737,"matched_functions_percent":72.45335,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T12:00:52Z","commit_sha":"97f2ea20f6f5f3515a69cdc17af1b0eed9787f9e","commit_message":"bin2c.py: add --sym switch to read symbol names from sym.txt files\n\nWhen a pointer value matches a symbol addr from sym.txt, the name will be\noutput instead of a pointer address.\n\neg:\n  tools/bin2c.py -b assets/VIN/MAP1_S04.BIN -o 0x4 -s ctx.c -t s_MapOverlayHeader --sym configs/sym.bodyprog.txt --sym configs/maps/sym.map1_s04.txt --use-cpp","measures":{"fuzzy_match_percent":52.21349,"total_code":2879592,"matched_code":1498332,"matched_code_percent":52.032787,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4737,"matched_functions_percent":72.45335,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T11:58:15Z","commit_sha":"fee1d21c97c5010ac7f0e45c4d21959ff64b1a02","commit_message":"bodyprog: func_8008D990","measures":{"fuzzy_match_percent":52.21349,"total_code":2879592,"matched_code":1498332,"matched_code_percent":52.032787,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4737,"matched_functions_percent":72.45335,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T10:50:27Z","commit_sha":"f137d6cb096bd6583d2e4d30921b741038880383","commit_message":"bin2c.py: tool for creating C initializers from C struct + raw data\n\nCouldn't really find a good generic tool for this, so \"built\" one myself\n\n(by built I mean tried using chatgpt, gave up on the crap code from it,\nswitched to claude, ran out of free claude credits after literally 5 prompts,\nswitched to gemini, mostly got something working, then fixed things up\nafterwards)\n\nThis seems to mostly work on our s_MapOverlayHeader struct, gives close\ninitializer to the map0 map we have.\n\nExample usage:\n\ntools/bin2c.py -s ctx.c -b assets/VIN/MAP0_S00.BIN -o 0x4 -t s_MapOverlayHeader --use-cpp","measures":{"fuzzy_match_percent":52.112503,"total_code":2879592,"matched_code":1495424,"matched_code_percent":51.931805,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4736,"matched_functions_percent":72.43806,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T10:33:50Z","commit_sha":"dce3114f99adbccb38f14bfc7130016ebbef4356","commit_message":"bodyprog: symbol suffix fix","measures":{"fuzzy_match_percent":52.112503,"total_code":2879592,"matched_code":1495424,"matched_code_percent":51.931805,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4736,"matched_functions_percent":72.43806,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T07:30:10Z","commit_sha":"1d90c0b1e699021f96a93d1e76791e2200efd664","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":52.108894,"total_code":2879592,"matched_code":1495320,"matched_code_percent":51.928192,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4735,"matched_functions_percent":72.42276,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-08T06:42:19Z","commit_sha":"c40b8c203ea98f0b2e75c36875878299f261aa44","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":52.108894,"total_code":2879592,"matched_code":1495320,"matched_code_percent":51.928192,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4735,"matched_functions_percent":72.42276,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-07T22:21:42Z","commit_sha":"3667de27684b001a24c58e579aef18ed590ef82d","commit_message":"MAP6_S03: func_800E1D50","measures":{"fuzzy_match_percent":52.108894,"total_code":2879592,"matched_code":1495320,"matched_code_percent":51.928192,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4735,"matched_functions_percent":72.42276,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-07T21:16:10Z","commit_sha":"13b44f1887ddea46607e8f61e6e91b21b6dcddfd","commit_message":"bodyprog: func_8008EA68","measures":{"fuzzy_match_percent":52.070694,"total_code":2879592,"matched_code":1494220,"matched_code_percent":51.88999,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4734,"matched_functions_percent":72.40746,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-07T20:11:56Z","commit_sha":"f00e23a376caedceeb4a9f3704eb35af8c477f15","commit_message":"math: take pointer for `Math_SetSVectorFast`","measures":{"fuzzy_match_percent":52.029022,"total_code":2879592,"matched_code":1493020,"matched_code_percent":51.848316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4733,"matched_functions_percent":72.39217,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-07T19:54:48Z","commit_sha":"dd0a28f972ccda7e649e5e597eec1293bb90ab08","commit_message":"MAP6_S04: func_800E3244","measures":{"fuzzy_match_percent":52.029022,"total_code":2879592,"matched_code":1493020,"matched_code_percent":51.848316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4733,"matched_functions_percent":72.39217,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-07T19:14:53Z","commit_sha":"1b37bee98a97a09bcca49c46c4ab32b67e0aceaf","commit_message":"math: switch vector inlines to macros\n\ninlines have caused some issues with regalloc/offsets a few times,\nchanging to macro has fixed them\n\nfor Math_Vector3Set this fixes one known issue, and the other inlines\ndon't break when switched over, so probably worth changing to avoid\nsimilar issues","measures":{"fuzzy_match_percent":51.916225,"total_code":2879592,"matched_code":1489772,"matched_code_percent":51.735527,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4732,"matched_functions_percent":72.37687,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-07T17:25:57Z","commit_sha":"9a64d01149f44a8b9530b478e1defa6d9fd2a7f5","commit_message":"MAP6_S04: func_800E5D44","measures":{"fuzzy_match_percent":52.07722,"total_code":2879592,"matched_code":1494408,"matched_code_percent":51.89652,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4734,"matched_functions_percent":72.40746,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T23:17:26Z","commit_sha":"4df390ed860d794b0703a5252c41d58675589f98","commit_message":"maps: update `CHARA_CASE`/`PARTICLE_CASE`","measures":{"fuzzy_match_percent":52.058887,"total_code":2879592,"matched_code":1493880,"matched_code_percent":51.878185,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4733,"matched_functions_percent":72.39217,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T21:48:50Z","commit_sha":"74f35d926fab9e7c067d347485cfed735ee1b8de","commit_message":"MAP1_S05: func_800D525C","measures":{"fuzzy_match_percent":52.058887,"total_code":2879592,"matched_code":1493880,"matched_code_percent":51.878185,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4733,"matched_functions_percent":72.39217,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T20:20:56Z","commit_sha":"8fcd6f9b9d6cf0bc9ddbcb478c628b296c230c50","commit_message":"MAP2_S02: func_800D240C","measures":{"fuzzy_match_percent":52.0443,"total_code":2879592,"matched_code":1493460,"matched_code_percent":51.863598,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4732,"matched_functions_percent":72.37687,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T19:50:50Z","commit_sha":"208ce7e9c1e2f39ae85b62f7258a157b32dc7ca2","commit_message":"MAP2_S02: func_800DEC04","measures":{"fuzzy_match_percent":52.02541,"total_code":2879592,"matched_code":1492916,"matched_code_percent":51.844704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4731,"matched_functions_percent":72.36158,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T19:44:26Z","commit_sha":"c25f70eda1f266d58fc795eb7d930fa6eca14c4b","commit_message":"MAP2_S02: func_800DEC98","measures":{"fuzzy_match_percent":52.02027,"total_code":2879592,"matched_code":1492768,"matched_code_percent":51.839565,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4730,"matched_functions_percent":72.34628,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T18:12:06Z","commit_sha":"0f7a76dc2d251c405d69a46c4f201f6eb6c9ca6a","commit_message":"MAP2_S02: func_800E3FB0","measures":{"fuzzy_match_percent":52.016796,"total_code":2879592,"matched_code":1492668,"matched_code_percent":51.83609,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4729,"matched_functions_percent":72.330986,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T17:43:14Z","commit_sha":"ca4c1424091989bdcdb492f88f378c051a0abc96","commit_message":"MAP2_S02: func_800E5FC8","measures":{"fuzzy_match_percent":52.00388,"total_code":2879592,"matched_code":1492296,"matched_code_percent":51.823174,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4728,"matched_functions_percent":72.31569,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T17:24:21Z","commit_sha":"0d86ea0a1f55e31fa938edb1908a9440b7675c1f","commit_message":"MAP2_S02: func_800E6758","measures":{"fuzzy_match_percent":51.993183,"total_code":2879592,"matched_code":1491988,"matched_code_percent":51.81248,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4727,"matched_functions_percent":72.3004,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T12:47:32Z","commit_sha":"eb69287a79ceaef8ff232e545a175ea58a609b1e","commit_message":"Round floats, prepare character anim enums","measures":{"fuzzy_match_percent":51.98318,"total_code":2879592,"matched_code":1491700,"matched_code_percent":51.80248,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4726,"matched_functions_percent":72.2851,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T12:05:02Z","commit_sha":"fd412bf9a86d6b91406ecda1753fa95111eb11e9","commit_message":"Demagicking","measures":{"fuzzy_match_percent":51.98318,"total_code":2879592,"matched_code":1491700,"matched_code_percent":51.80248,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4726,"matched_functions_percent":72.2851,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T11:18:08Z","commit_sha":"25d598030546bbcd695380a4f252ce1d8eee8290","commit_message":"MAP3_S02: func_800CFEEC","measures":{"fuzzy_match_percent":51.98318,"total_code":2879592,"matched_code":1491700,"matched_code_percent":51.80248,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4726,"matched_functions_percent":72.2851,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T06:33:57Z","commit_sha":"6903fcba75a7ddbf7957f8d35a8cb050fb7b21c1","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":51.9604,"total_code":2879592,"matched_code":1491044,"matched_code_percent":51.7797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4725,"matched_functions_percent":72.269806,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T05:17:46Z","commit_sha":"a0514371d0354b9d096c4beae3004d7986354389","commit_message":"maps: move anim info to character headers","measures":{"fuzzy_match_percent":51.9604,"total_code":2879592,"matched_code":1491044,"matched_code_percent":51.7797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4725,"matched_functions_percent":72.269806,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T05:05:45Z","commit_sha":"f813d66171a55c8a5baa188364eb4fa13a9d251d","commit_message":"Replace `ifdef MAPX` with `HAS_Chara_X` checks, fix KAUFMANN_ANIM_INFOS issue","measures":{"fuzzy_match_percent":51.9604,"total_code":2879592,"matched_code":1491044,"matched_code_percent":51.7797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4725,"matched_functions_percent":72.269806,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T03:39:35Z","commit_sha":"123de01381cc734d652996c81c7185a9bbde1e2d","commit_message":"sharedFunc_800CEB24: change map ifdef checks to switch with feature checks\n\nAllows to dedupe some of the code by changing it to a switch instead.\n\nThe KAUFMANN_ANIM_INFO issue might be caused by something similar to\nwhats used here, some of the chara anim funcs use a switch with\ndifferent cases for each chara included in the map, but maps with only 1\ncharacter don't use case labels and always use a default case.\n\nFor those we just always used KAUFMANN_ANIM_INFO symbol name, even\nthough the table belonged to lisa/cheryl/etc. maybe that can be fixed\nwith same thing here.","measures":{"fuzzy_match_percent":51.9604,"total_code":2879592,"matched_code":1491044,"matched_code_percent":51.7797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4725,"matched_functions_percent":72.269806,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T02:58:22Z","commit_sha":"a32637915e3cee9ce6f6c3d707297e905a0d60f9","commit_message":"maps: share `sharedFunc_800CEB24_0_s00` in 11 maps","measures":{"fuzzy_match_percent":51.9604,"total_code":2879592,"matched_code":1491044,"matched_code_percent":51.7797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4725,"matched_functions_percent":72.269806,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-06T02:05:30Z","commit_sha":"79fc67e8a3d4797442907e770b8266f9b676dea3","commit_message":"map3: match/share `sharedFunc_800CEB24_0_s00`\n\nTODO: check version in other maps","measures":{"fuzzy_match_percent":51.518394,"total_code":2879592,"matched_code":1478316,"matched_code_percent":51.33769,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4714,"matched_functions_percent":72.101555,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T23:36:59Z","commit_sha":"8eac3990b78702f730f8b7b20e179f90ae389a79","commit_message":"MAP3_S00: func_800D0CF8","measures":{"fuzzy_match_percent":51.392124,"total_code":2879592,"matched_code":1474680,"matched_code_percent":51.211422,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4711,"matched_functions_percent":72.05567,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T22:18:10Z","commit_sha":"0061bfead26fece31de849451227cdb7cf3349f0","commit_message":"maps: share 7 funcs","measures":{"fuzzy_match_percent":51.286415,"total_code":2879592,"matched_code":1471636,"matched_code_percent":51.105713,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4710,"matched_functions_percent":72.04038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T21:57:46Z","commit_sha":"f74725fbce7b15e91f28463ca4e3818c80f05bb9","commit_message":"MAP7_S02: sharedFunc_800CB6B0_0_s00_noParticles","measures":{"fuzzy_match_percent":51.27669,"total_code":2879592,"matched_code":1471356,"matched_code_percent":51.095985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4703,"matched_functions_percent":71.93331,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T21:08:06Z","commit_sha":"054f1be149418e2d1b9ac730074b53ce4c716d3b","commit_message":"map5_s03: match 2 funcs","measures":{"fuzzy_match_percent":51.26419,"total_code":2879592,"matched_code":1470996,"matched_code_percent":51.08349,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4702,"matched_functions_percent":71.918015,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T20:55:44Z","commit_sha":"dcd901741fe51fc7596001bee216bc82144b568c","commit_message":"map0_s02: fixup","measures":{"fuzzy_match_percent":51.225433,"total_code":2879592,"matched_code":1469880,"matched_code_percent":51.04473,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4700,"matched_functions_percent":71.88743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T20:54:23Z","commit_sha":"17778c9f5e300b39ef9768bdbbb1435f64adcceb","commit_message":"map5: add `sharedFunc_800CE884_0_s02`","measures":{"fuzzy_match_percent":51.225433,"total_code":2879592,"matched_code":1469880,"matched_code_percent":51.04473,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4700,"matched_functions_percent":71.88743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T19:46:18Z","commit_sha":"9426b3ca1e405467e81332f3ba1a5222571f276b","commit_message":"sharedFunc_800CFFF8_0_s00: match for MAP7_S03","measures":{"fuzzy_match_percent":51.216824,"total_code":2879592,"matched_code":1469632,"matched_code_percent":51.036118,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4698,"matched_functions_percent":71.85684,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T19:37:54Z","commit_sha":"04bebb787fb02548952fd1968dfbbaf9366e357f","commit_message":"MAP3_S05: func_800D5FC4","measures":{"fuzzy_match_percent":51.206127,"total_code":2879592,"matched_code":1469324,"matched_code_percent":51.02542,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4697,"matched_functions_percent":71.841545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T19:37:02Z","commit_sha":"a427b4606060559b457eb3b032c245f745c873ee","commit_message":"objdiff_generate: disable symbol mappings for now","measures":{"fuzzy_match_percent":51.170567,"total_code":2879592,"matched_code":1468300,"matched_code_percent":50.98986,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4696,"matched_functions_percent":71.82625,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T19:32:55Z","commit_sha":"9fac175dcaf7bc0ed8f89cdb66e5d7f0ef0b4a68","commit_message":"map5_s02: `func_800D4B58`","measures":{"fuzzy_match_percent":51.00957,"total_code":2879592,"matched_code":1463664,"matched_code_percent":50.82887,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4694,"matched_functions_percent":71.795654,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T19:21:20Z","commit_sha":"6668a3749f1b4268d62311e52bb05908ce22486d","commit_message":"MAP3_S05: func_800D72AC","measures":{"fuzzy_match_percent":50.986233,"total_code":2879592,"matched_code":1462992,"matched_code_percent":50.805534,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4693,"matched_functions_percent":71.78036,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T19:10:17Z","commit_sha":"c95e1a058dc9a858e8bf4fd516dc2cf700aef556","commit_message":"map5_s03: `func_800D1AF8`","measures":{"fuzzy_match_percent":50.949146,"total_code":2879592,"matched_code":1461924,"matched_code_percent":50.76844,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4692,"matched_functions_percent":71.76507,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T16:28:49Z","commit_sha":"71b954a0ce95067022681a607ce1692ea74f6e48","commit_message":"map5_s03: func_800D2674\n\nCo-authored-by: Bl00D4NGEL <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":50.848854,"total_code":2879592,"matched_code":1459036,"matched_code_percent":50.66815,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4691,"matched_functions_percent":71.74977,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-05T15:37:34Z","commit_sha":"020f9d2eb610b57ed1b76ba6d0b01ac8c32dee5c","commit_message":"`FootstepMetal` and `RadioInterferenceLoop` (#457)\n\n* `FootstepMetal` and `RadioInterferenceLoop`\n\n* Changed known values to hex","measures":{"fuzzy_match_percent":50.81718,"total_code":2879592,"matched_code":1458124,"matched_code_percent":50.636475,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4690,"matched_functions_percent":71.734474,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T21:08:04Z","commit_sha":"21c1db3fecbbba01060722d806e205ec70ebda32","commit_message":"MAP3_S05: func_800D87AC","measures":{"fuzzy_match_percent":50.81718,"total_code":2879592,"matched_code":1458124,"matched_code_percent":50.636475,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4690,"matched_functions_percent":71.734474,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T17:14:45Z","commit_sha":"94cc03f59841501695f3bfa36e3a769e87b6a3b4","commit_message":"MAP3_S05: func_800D8424","measures":{"fuzzy_match_percent":50.744255,"total_code":2879592,"matched_code":1456024,"matched_code_percent":50.56355,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4689,"matched_functions_percent":71.719185,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T15:31:30Z","commit_sha":"c4688a4217f17c24c2615718a4c55f45e3f67254","commit_message":"objdiff: add symbol mappings for suffixed symbols","measures":{"fuzzy_match_percent":50.712864,"total_code":2879592,"matched_code":1455120,"matched_code_percent":50.532158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4688,"matched_functions_percent":71.70389,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T13:50:41Z","commit_sha":"628d655607088bd7d9dfeb821b8734a6161b8f8c","commit_message":"bodyprog: func_80067914","measures":{"fuzzy_match_percent":50.712864,"total_code":2879592,"matched_code":1455120,"matched_code_percent":50.532158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4688,"matched_functions_percent":71.70389,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T08:38:52Z","commit_sha":"e80ec40c72a92ea66f69e580c9c60d9d89365138","commit_message":"Demagicking","measures":{"fuzzy_match_percent":50.537975,"total_code":2879592,"matched_code":1450084,"matched_code_percent":50.35727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T07:50:16Z","commit_sha":"f9d75e530f5e790eeeb8c36c0379562766fe83f9","commit_message":"Update SFX function calls","measures":{"fuzzy_match_percent":50.537975,"total_code":2879592,"matched_code":1450084,"matched_code_percent":50.35727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T07:21:00Z","commit_sha":"dd06866c2854d00647a98771a49ebb23da760175","commit_message":"Update SFX enum.","measures":{"fuzzy_match_percent":50.537975,"total_code":2879592,"matched_code":1450084,"matched_code_percent":50.35727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T07:16:28Z","commit_sha":"98debc34fff80e91efac9276d36fe87c18ae0ee7","commit_message":"Update SFX enum","measures":{"fuzzy_match_percent":50.537975,"total_code":2879592,"matched_code":1450084,"matched_code_percent":50.35727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T07:12:47Z","commit_sha":"1ddcff32b45e51eaafddc97a5b0d9c19a5f755fe","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":50.537975,"total_code":2879592,"matched_code":1450084,"matched_code_percent":50.35727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T03:23:08Z","commit_sha":"df3351834a161b8e3755b821aef40898cb888d8a","commit_message":"fsqueue.h: undo clang-format changes","measures":{"fuzzy_match_percent":50.537975,"total_code":2879592,"matched_code":1450084,"matched_code_percent":50.35727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T03:18:14Z","commit_sha":"0001b04eed110e71b21ec07ed9e1ffa9060e959f","commit_message":"map5_s02: match 2 funcs","measures":{"fuzzy_match_percent":50.537975,"total_code":2879592,"matched_code":1450084,"matched_code_percent":50.35727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T00:51:28Z","commit_sha":"7ae1871e7a582bf772ebdce5eeedd66f739d1d36","commit_message":"map5_s02: match 2 funcs","measures":{"fuzzy_match_percent":50.54978,"total_code":2879592,"matched_code":1450424,"matched_code_percent":50.36908,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4687,"matched_functions_percent":71.68859,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-04T00:06:34Z","commit_sha":"39673f6b293abe3ac2c01bb47ce792d901998b3d","commit_message":"sharedFunc_800CB6B0_0_s00: fixups","measures":{"fuzzy_match_percent":50.495747,"total_code":2879592,"matched_code":1448868,"matched_code_percent":50.31505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4685,"matched_functions_percent":71.658,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T23:51:03Z","commit_sha":"59f24a1c941e5411efe7bb242d4492981494d122","commit_message":"map3_s02: share `sharedFunc_800CB6B0_0_s00`, add `_noParticles` version","measures":{"fuzzy_match_percent":50.495747,"total_code":2879592,"matched_code":1448868,"matched_code_percent":50.31505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4685,"matched_functions_percent":71.658,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T23:11:53Z","commit_sha":"20b6650c644460d58d285384b05fe622e076510e","commit_message":"MAP3_S05: func_800D437C","measures":{"fuzzy_match_percent":50.483246,"total_code":2879592,"matched_code":1448508,"matched_code_percent":50.30254,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4684,"matched_functions_percent":71.6427,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T22:30:09Z","commit_sha":"b3553e32bc1e4612b439e0ef817fb8ad0473be93","commit_message":"MAP3_S02: func_800D0218 = MapEvent_DoorLocked","measures":{"fuzzy_match_percent":50.47505,"total_code":2879592,"matched_code":1448272,"matched_code_percent":50.294346,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4683,"matched_functions_percent":71.62741,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T21:47:39Z","commit_sha":"12741fd09eedcbbe2bdfdd7365688d4a762d3191","commit_message":"MAP3_S02: func_800D1354","measures":{"fuzzy_match_percent":50.46991,"total_code":2879592,"matched_code":1448124,"matched_code_percent":50.289207,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4682,"matched_functions_percent":71.612114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T20:12:19Z","commit_sha":"a50146e6d630ccea705a7072524455a9674f0dd9","commit_message":"MAP2_S02: func_800E9B38","measures":{"fuzzy_match_percent":50.459354,"total_code":2879592,"matched_code":1447820,"matched_code_percent":50.278652,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4681,"matched_functions_percent":71.59682,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T19:58:03Z","commit_sha":"cf6a2f5bd55850eef29ad4d6ffa7effae55a4ecd","commit_message":"MAP2_S02: func_800E9D54","measures":{"fuzzy_match_percent":50.451157,"total_code":2879592,"matched_code":1447584,"matched_code_percent":50.270454,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4680,"matched_functions_percent":71.58153,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T19:49:07Z","commit_sha":"ed44a9355eca4f45be48491def9fceca2676bf61","commit_message":"MAP2_S02: func_800EA0E0","measures":{"fuzzy_match_percent":50.4356,"total_code":2879592,"matched_code":1447136,"matched_code_percent":50.254898,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4678,"matched_functions_percent":71.550934,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T19:42:01Z","commit_sha":"0d2bfe08b5c62efe1d2e805981556c45c0ee4ce7","commit_message":"MAP2_S02: func_800EA1C4","measures":{"fuzzy_match_percent":50.42768,"total_code":2879592,"matched_code":1446908,"matched_code_percent":50.24698,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4677,"matched_functions_percent":71.53564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T12:48:03Z","commit_sha":"ee10abe30f58193f2f2064d031b72ad39001f976","commit_message":"Name pickup functions","measures":{"fuzzy_match_percent":50.3517,"total_code":2879592,"matched_code":1444720,"matched_code_percent":50.170994,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4676,"matched_functions_percent":71.52034,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T09:47:04Z","commit_sha":"0b91b94d72d7acc15d070e3f0619c5f5d55c9f68","commit_message":"bodyprog: name `MapMsg_DisplayWithTexture`, add enums to func params\n\nHopefully m2c will pick up the params and use enums automatically for us","measures":{"fuzzy_match_percent":50.3517,"total_code":2879592,"matched_code":1444720,"matched_code_percent":50.170994,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4676,"matched_functions_percent":71.52034,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T05:47:19Z","commit_sha":"66620aded4baa573f367d499eb2c5a2b8a9a17ba","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":50.3517,"total_code":2879592,"matched_code":1444720,"matched_code_percent":50.170994,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4676,"matched_functions_percent":71.52034,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-03T04:51:55Z","commit_sha":"3ac7296434401ea4828b34cdd8ade69157070983","commit_message":"map5_s03: document missing newspaper bug","measures":{"fuzzy_match_percent":50.3517,"total_code":2879592,"matched_code":1444720,"matched_code_percent":50.170994,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4676,"matched_functions_percent":71.52034,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T23:43:44Z","commit_sha":"c719037598a481a1c000362ec5b048e05be340a4","commit_message":"MAP2_S00: func_800E5930","measures":{"fuzzy_match_percent":50.3517,"total_code":2879592,"matched_code":1444720,"matched_code_percent":50.170994,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4676,"matched_functions_percent":71.52034,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T21:47:55Z","commit_sha":"f2f0b60cc9da2c0f69003430245d70cfb98762cf","commit_message":"sharedFunc_800D5C64_0_s00","measures":{"fuzzy_match_percent":50.33878,"total_code":2879592,"matched_code":1444348,"matched_code_percent":50.158077,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4675,"matched_functions_percent":71.50504,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T21:15:29Z","commit_sha":"94e35649eccc0cbeff466af88a334a429900c56f","commit_message":"map6_s03: match 2 funcs","measures":{"fuzzy_match_percent":50.066242,"total_code":2879592,"matched_code":1436500,"matched_code_percent":49.88554,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4666,"matched_functions_percent":71.367386,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T20:27:32Z","commit_sha":"5d14d576a92f2a2955e6dc3d4243c419309fc0f0","commit_message":"MAP6_S01: func_800D2E6C\n\nCo-authored-by: emoose <abc@cock.li>","measures":{"fuzzy_match_percent":50.014984,"total_code":2879592,"matched_code":1435024,"matched_code_percent":49.834282,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4664,"matched_functions_percent":71.3368,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T20:21:26Z","commit_sha":"88abbf055bacb3a8dcca7b6cfe4f737b75c94d85","commit_message":"Fix WorldObjectPoseSet\n\n@emoose found that a macro version of this inline function together\nwith a small modification to Math_SetSVectorFast makes it match\nin few problematic cases while working with all the others.\n\nCo-authored-by: emoose <abc@cock.li>","measures":{"fuzzy_match_percent":49.993317,"total_code":2879592,"matched_code":1434400,"matched_code_percent":49.81261,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4663,"matched_functions_percent":71.3215,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T19:58:58Z","commit_sha":"54758b42e6e0aaeb4c60587769b85be3f018bdba","commit_message":"MAP2_S00: func_800EB908","measures":{"fuzzy_match_percent":49.993317,"total_code":2879592,"matched_code":1434400,"matched_code_percent":49.81261,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4663,"matched_functions_percent":71.3215,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T16:26:19Z","commit_sha":"cb610c9ec3e24d20ecb5d6c4ade8181d3b23ee91","commit_message":"MAP2_S00: func_800EB174","measures":{"fuzzy_match_percent":49.926918,"total_code":2879592,"matched_code":1432488,"matched_code_percent":49.746216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4662,"matched_functions_percent":71.30621,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T16:17:54Z","commit_sha":"12ffbc154c9c3bb82ec2dd2b34bd32d7f6ed63f3","commit_message":"MAP2_S00: func_800EA960","measures":{"fuzzy_match_percent":49.904694,"total_code":2879592,"matched_code":1431848,"matched_code_percent":49.723988,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4661,"matched_functions_percent":71.29092,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T16:03:44Z","commit_sha":"f3e5deec4e78b4c4b0d5b5d0b659c64b73742493","commit_message":"Minor changes","measures":{"fuzzy_match_percent":49.870937,"total_code":2879592,"matched_code":1430876,"matched_code_percent":49.690235,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4660,"matched_functions_percent":71.27562,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T15:51:16Z","commit_sha":"3603408aff1e016a51c13bea8a7a595533b3567f","commit_message":"MAP2_S00: func_800EAD2C","measures":{"fuzzy_match_percent":49.870937,"total_code":2879592,"matched_code":1430876,"matched_code_percent":49.690235,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4660,"matched_functions_percent":71.27562,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T15:30:19Z","commit_sha":"25c332a11076fd578b052a10aac6d5082a8816d5","commit_message":"Name pickup events, demagic anim flag, introduce `e_EventState` convention to deobfuscate multi-step event funcs","measures":{"fuzzy_match_percent":49.840794,"total_code":2879592,"matched_code":1430008,"matched_code_percent":49.66009,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4659,"matched_functions_percent":71.26033,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T14:53:20Z","commit_sha":"fb92e2ce30622864214f6f9a7c21d19c3b407ea8","commit_message":"MAP2_S00: func_800EA6E0","measures":{"fuzzy_match_percent":49.840794,"total_code":2879592,"matched_code":1430008,"matched_code_percent":49.66009,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4659,"matched_functions_percent":71.26033,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T14:46:42Z","commit_sha":"aa404a554ea17f6f15939a8bd18bf22b79679cc7","commit_message":"MAP2_S00: func_800EA444","measures":{"fuzzy_match_percent":49.825653,"total_code":2879592,"matched_code":1429572,"matched_code_percent":49.64495,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4658,"matched_functions_percent":71.245026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T14:34:22Z","commit_sha":"478b0ccc69ef3635ae774599b7d1ae85a6ff4ff5","commit_message":"MAP2_S00: func_800E9D1C","measures":{"fuzzy_match_percent":49.802456,"total_code":2879592,"matched_code":1428904,"matched_code_percent":49.621754,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4657,"matched_functions_percent":71.22973,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T13:43:11Z","commit_sha":"2066ab1c527afb6e307b21b674183df438a63b5a","commit_message":"Name event functions","measures":{"fuzzy_match_percent":49.795925,"total_code":2879592,"matched_code":1428716,"matched_code_percent":49.615223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4656,"matched_functions_percent":71.21444,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T12:48:33Z","commit_sha":"1d98e7b699a93cba0980d8180835a7e455532a85","commit_message":"bodyprog: func_80060044, func_800611C0","measures":{"fuzzy_match_percent":49.795925,"total_code":2879592,"matched_code":1428716,"matched_code_percent":49.615223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4656,"matched_functions_percent":71.21444,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T12:16:44Z","commit_sha":"87b0193fb90e79451fd0a2a80eb0e5d31bbb5b87","commit_message":"Fix build","measures":{"fuzzy_match_percent":49.48963,"total_code":2879592,"matched_code":1419896,"matched_code_percent":49.30893,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4654,"matched_functions_percent":71.183846,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T11:52:37Z","commit_sha":"7441cc5e6109a992f39574f275ad17dca93f6841","commit_message":"Tidying pass, name functions\n\nCo-Authored-By: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":49.41504,"total_code":2879592,"matched_code":1417748,"matched_code_percent":49.234337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4653,"matched_functions_percent":71.16856,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T11:41:40Z","commit_sha":"6041f1597223c6437b2c2110daaae67bc9f1b886","commit_message":"MAP2_S00: func_800E8C0C","measures":{"fuzzy_match_percent":49.48963,"total_code":2879592,"matched_code":1419896,"matched_code_percent":49.30893,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4654,"matched_functions_percent":71.183846,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T11:12:29Z","commit_sha":"4e1919f54d4325e12a2e6e2267a384c179740d13","commit_message":"MAP2_S00: func_800E83C0","measures":{"fuzzy_match_percent":49.41504,"total_code":2879592,"matched_code":1417748,"matched_code_percent":49.234337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4653,"matched_functions_percent":71.16856,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T10:27:12Z","commit_sha":"ec988fa5629465af9aa9ee0af5b909b12c1147a2","commit_message":"MAP2_S00: func_800E9A74","measures":{"fuzzy_match_percent":49.341278,"total_code":2879592,"matched_code":1415624,"matched_code_percent":49.160576,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4652,"matched_functions_percent":71.15326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T10:16:26Z","commit_sha":"db86848ddbeb60413f8c03682aa987d123c63a9a","commit_message":"MAP2_S00: func_800E97E4","measures":{"fuzzy_match_percent":49.321278,"total_code":2879592,"matched_code":1415048,"matched_code_percent":49.14057,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4651,"matched_functions_percent":71.13796,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T10:10:11Z","commit_sha":"b71b0ef950b5d9e6b46892f84169b239e9f2a4db","commit_message":"MAP2_S00: func_800E95F8","measures":{"fuzzy_match_percent":49.302105,"total_code":2879592,"matched_code":1414496,"matched_code_percent":49.121403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4650,"matched_functions_percent":71.12267,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-02T05:46:12Z","commit_sha":"5bdcd61c0db9284db40a6dae77ad226ff8401676","commit_message":"map2_s00: `func_800EB3F4`\n\nCo-authored-by: pseregiet <patryk.seregiet@gmail.com>","measures":{"fuzzy_match_percent":49.285023,"total_code":2879592,"matched_code":1414004,"matched_code_percent":49.104317,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4649,"matched_functions_percent":71.10737,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T22:51:16Z","commit_sha":"7870548f5e0f24413dec5ae6b1ba6bd0efcf6b8f","commit_message":"EventFlag fixups","measures":{"fuzzy_match_percent":49.25488,"total_code":2879592,"matched_code":1413136,"matched_code_percent":49.074173,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4648,"matched_functions_percent":71.09207,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T21:44:33Z","commit_sha":"99e832dfef7f298badb7f6a8bffad57d8d022d3d","commit_message":"Symbol temp-fix\n\nthe true one","measures":{"fuzzy_match_percent":49.25488,"total_code":2879592,"matched_code":1413136,"matched_code_percent":49.074173,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4648,"matched_functions_percent":71.09207,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T21:04:59Z","commit_sha":"d4fbb09e291cee6966598b7c02483b7950b4575f","commit_message":"MAP2_S00: func_800EB090","measures":{"fuzzy_match_percent":49.097496,"total_code":2879592,"matched_code":1408604,"matched_code_percent":48.91679,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4647,"matched_functions_percent":71.07678,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:58:42Z","commit_sha":"18d2418301d71077817cc333196004c97baaaf0e","commit_message":"MAP2_S00: func_800EB79C, func_800EB7E0","measures":{"fuzzy_match_percent":49.089577,"total_code":2879592,"matched_code":1408376,"matched_code_percent":48.908875,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4646,"matched_functions_percent":71.061485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:56:11Z","commit_sha":"4b9e86d1b0c93102cf626bba1f866fe874d2efcd","commit_message":"MAP2_S00: func_800EB824","measures":{"fuzzy_match_percent":49.084854,"total_code":2879592,"matched_code":1408240,"matched_code_percent":48.904152,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4644,"matched_functions_percent":71.0309,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:52:01Z","commit_sha":"4661c6d68482c33e5bf55d8075e13ad0e6e846c9","commit_message":"MAP2_S00: func_800EE518","measures":{"fuzzy_match_percent":49.076935,"total_code":2879592,"matched_code":1408012,"matched_code_percent":48.896233,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4643,"matched_functions_percent":71.0156,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:45:51Z","commit_sha":"483edeed820fef7f08f4d407e24976f322dfb4cf","commit_message":"MAP2_S00: func_800EA894","measures":{"fuzzy_match_percent":49.071934,"total_code":2879592,"matched_code":1407868,"matched_code_percent":48.89123,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4642,"matched_functions_percent":71.000305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:38:46Z","commit_sha":"a82017547cf64e4bf9e8d48660366a017983e89d","commit_message":"MAP2_S00: func_800EB758","measures":{"fuzzy_match_percent":49.06485,"total_code":2879592,"matched_code":1407664,"matched_code_percent":48.884148,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4641,"matched_functions_percent":70.985016,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:31:03Z","commit_sha":"baaa9bf315ec2cddf2155cefc334f6dc76a93f1f","commit_message":"Symbol temp-fix","measures":{"fuzzy_match_percent":49.06249,"total_code":2879592,"matched_code":1407596,"matched_code_percent":48.881786,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4640,"matched_functions_percent":70.96971,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:18:28Z","commit_sha":"be63d9fdce8c9d94228bd4f8e0a72d5082dbb48c","commit_message":"MAP1_S06: func_800D2270","measures":{"fuzzy_match_percent":49.06249,"total_code":2879592,"matched_code":1407596,"matched_code_percent":48.881786,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4640,"matched_functions_percent":70.96971,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T20:14:58Z","commit_sha":"32aab27974f27d30d00669af7731db32b75a278b","commit_message":"MAP1_S06: func_800D2CC8","measures":{"fuzzy_match_percent":49.04485,"total_code":2879592,"matched_code":1407088,"matched_code_percent":48.864143,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4639,"matched_functions_percent":70.95442,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T19:28:27Z","commit_sha":"d22bd0dd1f32211530e0951408b4d03a1f78329f","commit_message":"Change `mapMarkingFlags_1D4` accesses to macro","measures":{"fuzzy_match_percent":49.025402,"total_code":2879592,"matched_code":1406528,"matched_code_percent":48.8447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4638,"matched_functions_percent":70.939125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T19:04:51Z","commit_sha":"9fbf4b34c181c97b30b6f663b70e4778bbef0bd2","commit_message":"flags_fp_conv.py: add map marking support, read enums from headers","measures":{"fuzzy_match_percent":49.025402,"total_code":2879592,"matched_code":1406528,"matched_code_percent":48.8447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4638,"matched_functions_percent":70.939125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T19:04:17Z","commit_sha":"40eb8eea854105d586f10236ee5a23e3506afd1b","commit_message":"Add `Savegame_MapMarking` macros, move e_Sfx to `sound_effects.h`","measures":{"fuzzy_match_percent":49.025402,"total_code":2879592,"matched_code":1406528,"matched_code_percent":48.8447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4638,"matched_functions_percent":70.939125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-11-01T04:38:58Z","commit_sha":"4d823e81a32133f402b25cb844329c01a1ce916a","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":49.025402,"total_code":2879592,"matched_code":1406528,"matched_code_percent":48.8447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4638,"matched_functions_percent":70.939125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T21:29:04Z","commit_sha":"d81398c85195f21fdfdf83959de2ca0f8a83a889","commit_message":"flags_fp_conv.py: support hexadecimal eventFlags array index","measures":{"fuzzy_match_percent":49.025402,"total_code":2879592,"matched_code":1406528,"matched_code_percent":48.8447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4638,"matched_functions_percent":70.939125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T18:32:49Z","commit_sha":"b7b1637880520436db5e825e782aae8881a78d2d","commit_message":"map1_s02: small fixup\n\nsmall converter bug, was fixed before commit","measures":{"fuzzy_match_percent":49.025402,"total_code":2879592,"matched_code":1406528,"matched_code_percent":48.8447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4638,"matched_functions_percent":70.939125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T18:24:13Z","commit_sha":"3fa7e0cfbdc6a763831fea289d7b5f07bb0bd59d","commit_message":"map1_s02: match 2 funcs","measures":{"fuzzy_match_percent":49.025402,"total_code":2879592,"matched_code":1406528,"matched_code_percent":48.8447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4638,"matched_functions_percent":70.939125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T18:14:47Z","commit_sha":"d4dc002aec2e5e66a585ce4ad262617c7c05c2e0","commit_message":"flags_fp_conv: round FP to shortest float that still matches","measures":{"fuzzy_match_percent":48.971367,"total_code":2879592,"matched_code":1404972,"matched_code_percent":48.790665,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4636,"matched_functions_percent":70.90853,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T17:10:26Z","commit_sha":"8cd2371f93c781cd4cc676953b6a8aad5052815e","commit_message":"MAP2_S00: func_800E7E60","measures":{"fuzzy_match_percent":48.971367,"total_code":2879592,"matched_code":1404972,"matched_code_percent":48.790665,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4636,"matched_functions_percent":70.90853,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T16:41:43Z","commit_sha":"9f68616760f7acb86478d3df768728ba4113b467","commit_message":"MAP2_S00: func_800E81EC","measures":{"fuzzy_match_percent":48.94428,"total_code":2879592,"matched_code":1404192,"matched_code_percent":48.763577,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4635,"matched_functions_percent":70.89324,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T16:34:11Z","commit_sha":"1fbbc14883af2b521435b23de73fce559ac0a66b","commit_message":"MAP2_S00: func_800EE5A8","measures":{"fuzzy_match_percent":48.928024,"total_code":2879592,"matched_code":1403724,"matched_code_percent":48.747322,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4634,"matched_functions_percent":70.877945,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T15:39:16Z","commit_sha":"249ca6b8d463fce017a479fee61e18db15c02f97","commit_message":"bodyprog: func_80057B7C","measures":{"fuzzy_match_percent":48.926636,"total_code":2879592,"matched_code":1403684,"matched_code_percent":48.745934,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4633,"matched_functions_percent":70.86265,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T14:58:15Z","commit_sha":"436f77761aafdd3cad17b503521bc85bbccfbde9","commit_message":"MAP1_S06: func_800D30F0","measures":{"fuzzy_match_percent":48.88552,"total_code":2879592,"matched_code":1402500,"matched_code_percent":48.70482,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4632,"matched_functions_percent":70.84736,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T14:50:32Z","commit_sha":"6eb3c621c87ab711b9285db7c145cfe5bc662bce","commit_message":"MAP7_S00: func_800D0B64","measures":{"fuzzy_match_percent":48.883297,"total_code":2879592,"matched_code":1402436,"matched_code_percent":48.702595,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4631,"matched_functions_percent":70.832054,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T10:57:13Z","commit_sha":"bc62d9ef1d354c2a938ef477e673a8d57ea2812c","commit_message":"MAP7_S00: func_800D2700","measures":{"fuzzy_match_percent":48.78884,"total_code":2879592,"matched_code":1399716,"matched_code_percent":48.608135,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4630,"matched_functions_percent":70.816765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T04:35:27Z","commit_sha":"8f102b4a272d94e00582833601222fe18a4dae03","commit_message":"Misc: name and objdiff config fix\n\nAdjusted the name in the symbols of a function that was not being counted, and while most changes here are done for the sake of Windows compilation, I noticed that base object building was enabled and that seemly caused objdiff to compile the file despite of having disabled the option of build on changes. Now switching between objects is almost instantaneous lol.","measures":{"fuzzy_match_percent":48.7762,"total_code":2879592,"matched_code":1399352,"matched_code_percent":48.595493,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4629,"matched_functions_percent":70.80147,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T04:32:28Z","commit_sha":"2442bb9c248c6b5a2be0cb4601d27685c87291f1","commit_message":"Fixups, name funcs and vars","measures":{"fuzzy_match_percent":48.772587,"total_code":2879592,"matched_code":1399248,"matched_code_percent":48.591885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4628,"matched_functions_percent":70.78617,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T04:25:50Z","commit_sha":"4faa77e9e5597b92b3085c2db201bef5478f9d8b","commit_message":"maps: share 3 funcs","measures":{"fuzzy_match_percent":48.772587,"total_code":2879592,"matched_code":1399248,"matched_code_percent":48.591885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4628,"matched_functions_percent":70.78617,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T03:14:39Z","commit_sha":"f8ee65c653ea58057e70ea14bd9344f144578ba4","commit_message":"maps: share `func_800CBB60` as `sharedFunc_800CE5D4_1_s03`","measures":{"fuzzy_match_percent":48.744526,"total_code":2879592,"matched_code":1398440,"matched_code_percent":48.563824,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4624,"matched_functions_percent":70.72499,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T02:59:48Z","commit_sha":"8d883888d19483150d95a116091988b14c67cb40","commit_message":"map6_s01: match 2 funcs","measures":{"fuzzy_match_percent":48.719524,"total_code":2879592,"matched_code":1397720,"matched_code_percent":48.538822,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4620,"matched_functions_percent":70.66381,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-31T01:26:50Z","commit_sha":"5cdac906c18ce8e5980060b3d6830512a028a594","commit_message":"map6_s01: `func_800D13D8`","measures":{"fuzzy_match_percent":48.641457,"total_code":2879592,"matched_code":1395472,"matched_code_percent":48.460754,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4618,"matched_functions_percent":70.633224,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T23:49:23Z","commit_sha":"8efc07466838c33ef9d85890aad9c4789657d578","commit_message":"map6_s01: `func_800D236C`, m2ctx fix","measures":{"fuzzy_match_percent":48.502964,"total_code":2879592,"matched_code":1391484,"matched_code_percent":48.32226,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4617,"matched_functions_percent":70.61793,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T22:31:11Z","commit_sha":"4a96d09c1d40407435d7503cb4a02e5e015cc93c","commit_message":"MAP1_S06: func_800D5DD8","measures":{"fuzzy_match_percent":48.47699,"total_code":2879592,"matched_code":1390736,"matched_code_percent":48.296288,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4616,"matched_functions_percent":70.60263,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T20:45:31Z","commit_sha":"0c5fb32dfda5014cd20af7694becc66a395afdfa","commit_message":"map0_s00: `func_800DB94C`","measures":{"fuzzy_match_percent":48.429207,"total_code":2879592,"matched_code":1389360,"matched_code_percent":48.2485,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4615,"matched_functions_percent":70.58733,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T19:41:42Z","commit_sha":"abc392e0b756fe1be57ab8979120761538041548","commit_message":"MAP1_S06: func_800D6578","measures":{"fuzzy_match_percent":48.387394,"total_code":2879592,"matched_code":1388156,"matched_code_percent":48.20669,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4614,"matched_functions_percent":70.572044,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T19:04:52Z","commit_sha":"9324e3dd5c90bd0d75a1d34ec4333f980ae39fd6","commit_message":"MAP3_S01: func_800D1524","measures":{"fuzzy_match_percent":48.324608,"total_code":2879592,"matched_code":1386348,"matched_code_percent":48.1439,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4613,"matched_functions_percent":70.55675,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T16:56:07Z","commit_sha":"c180191f31a7995fbb30c2b0a8385dba81209c0f","commit_message":"Update include_asm with `maspsx_include_asm_hack` to fix nonmatching rodata\n\nMacro from https://github.com/mkst/maspsx?tab=readme-ov-file#include_asm-reordering-workaround-hack\n\nFixes rodata issue mentioned at https://github.com/Vatuu/silent-hill-decomp/commit/5c4e8068f68fe6c26c62453f22987bf7f8bb6ecc#commitcomment-169291825\n\nObjdiff etc still seem to work locally, but not sure if this might\naffect decomp.dev at all, can always rollback if it does.","measures":{"fuzzy_match_percent":48.317524,"total_code":2879592,"matched_code":1386144,"matched_code_percent":48.136818,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4612,"matched_functions_percent":70.54145,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T14:22:23Z","commit_sha":"78d6131899d9e0ce1f8c2087fc219360fc535974","commit_message":"add func_80055648","measures":{"fuzzy_match_percent":48.302105,"total_code":2879592,"matched_code":1385700,"matched_code_percent":48.121403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4611,"matched_functions_percent":70.52615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T14:08:24Z","commit_sha":"5d1a81d8395f357671f19177907a50173ea5ff89","commit_message":"Add `UNK_PACKED_DATA` macro","measures":{"fuzzy_match_percent":48.288074,"total_code":2879592,"matched_code":1385296,"matched_code_percent":48.107372,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4610,"matched_functions_percent":70.51086,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T13:19:56Z","commit_sha":"6a25f27e2931cd0f8be262f8ea9b96c9691a61ad","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":48.288074,"total_code":2879592,"matched_code":1385296,"matched_code_percent":48.107372,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4610,"matched_functions_percent":70.51086,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T13:17:00Z","commit_sha":"4311c8ee7882512eaa79a93c67b78f260ffada53","commit_message":"MAP3_S01: func_800D23AC","measures":{"fuzzy_match_percent":48.288074,"total_code":2879592,"matched_code":1385296,"matched_code_percent":48.107372,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4610,"matched_functions_percent":70.51086,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T12:46:24Z","commit_sha":"4e805c489ec0c2f306a3ee0492b747ada72a4954","commit_message":"MAP3_S01: func_800D25A8","measures":{"fuzzy_match_percent":48.27043,"total_code":2879592,"matched_code":1384788,"matched_code_percent":48.08973,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4609,"matched_functions_percent":70.49557,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T11:56:27Z","commit_sha":"8bc90bf611848b4c8d667f8b2843f6225690161b","commit_message":"MAP3_S01: func_800D27C8 => MapEvent_Generator0\n\nalso:\nMAP3_S01: func_800D2A88: inline vector","measures":{"fuzzy_match_percent":48.257374,"total_code":2879592,"matched_code":1384412,"matched_code_percent":48.07667,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4608,"matched_functions_percent":70.48027,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T11:10:31Z","commit_sha":"acc7d7a0069d4207c4d050f816015398b104e307","commit_message":"Name functions, docs, deobfuscate","measures":{"fuzzy_match_percent":48.240845,"total_code":2879592,"matched_code":1383936,"matched_code_percent":48.060143,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4607,"matched_functions_percent":70.46497,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T10:35:29Z","commit_sha":"179cc0eb3ee1c031ddeaf53cdcbfd365b28a469b","commit_message":"MAP3_S01: func_800D2AF4","measures":{"fuzzy_match_percent":48.240845,"total_code":2879592,"matched_code":1383936,"matched_code_percent":48.060143,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4607,"matched_functions_percent":70.46497,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T09:33:37Z","commit_sha":"6b31f6079e3048277693c428130fd737dbc7711a","commit_message":"MAP3_S01: func_800D2E54","measures":{"fuzzy_match_percent":48.210842,"total_code":2879592,"matched_code":1383072,"matched_code_percent":48.030136,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4606,"matched_functions_percent":70.44968,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T08:24:46Z","commit_sha":"5c4e8068f68fe6c26c62453f22987bf7f8bb6ecc","commit_message":"MAP3_S00: func_800D18DC (commented out)","measures":{"fuzzy_match_percent":48.10666,"total_code":2879592,"matched_code":1380072,"matched_code_percent":47.925957,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4605,"matched_functions_percent":70.43439,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T08:13:22Z","commit_sha":"1d92b530ed944d1ef76995c743a6d2847d62909b","commit_message":"Docs, deobfuscation","measures":{"fuzzy_match_percent":48.10666,"total_code":2879592,"matched_code":1380072,"matched_code_percent":47.925957,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4605,"matched_functions_percent":70.43439,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T08:07:56Z","commit_sha":"20567df07502101ee87125862b8448027b1ec5a0","commit_message":"MAP3_S00: func_800D1A98","measures":{"fuzzy_match_percent":48.10666,"total_code":2879592,"matched_code":1380072,"matched_code_percent":47.925957,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4605,"matched_functions_percent":70.43439,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T07:40:40Z","commit_sha":"12ddb64d10f3a246ded14ec2a1b00c137b997250","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":48.07846,"total_code":2879592,"matched_code":1379260,"matched_code_percent":47.89776,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4604,"matched_functions_percent":70.41909,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T06:36:01Z","commit_sha":"bdc1a6ebe2856f1ccb02244d4b70f7503464f226","commit_message":"Fixups, deobfuscation, names, docs","measures":{"fuzzy_match_percent":48.07846,"total_code":2879592,"matched_code":1379260,"matched_code_percent":47.89776,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4604,"matched_functions_percent":70.41909,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T03:00:02Z","commit_sha":"547679dfbc31cd06b905bed89f5f74dc98da2931","commit_message":"bodyprog: add `e_ItemToggleFlags`","measures":{"fuzzy_match_percent":48.07846,"total_code":2879592,"matched_code":1379260,"matched_code_percent":47.89776,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4604,"matched_functions_percent":70.41909,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-30T00:05:27Z","commit_sha":"86ef68bcca2d371b3ed193e68d8bccbcc8a271ea","commit_message":"map1_s02/map2_s00: add `Event_DoorLocked`","measures":{"fuzzy_match_percent":48.07846,"total_code":2879592,"matched_code":1379260,"matched_code_percent":47.89776,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4604,"matched_functions_percent":70.41909,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T23:41:48Z","commit_sha":"78cdd9f10c91063411ab388855480c97c974d6a5","commit_message":"maps: share `Event_DoorJammed/Locked/Unlocked`","measures":{"fuzzy_match_percent":48.065544,"total_code":2879592,"matched_code":1378888,"matched_code_percent":47.88484,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4602,"matched_functions_percent":70.3885,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T22:29:31Z","commit_sha":"9b34dc3b11761f34ae673f9f1d8a83c8598702eb","commit_message":"Add sysStateStep index param to `StateStepIncrement` / `StateStepSet`\n\nDidn't think that would work, guess compiler is smart enough to remove\nthe unneeded blocks for us.\n\nRenamed SysWork_NextStateStepSet to just SysWork_StateStepSet, in line\nwith SysWork_StateStepIncrement.","measures":{"fuzzy_match_percent":47.8394,"total_code":2879592,"matched_code":1372376,"matched_code_percent":47.658695,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4558,"matched_functions_percent":69.715515,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T22:14:28Z","commit_sha":"35e418cd4d1cff8f80c0da08cf6b65f02f16535a","commit_message":"add func_80062708, func_80056D8C (#455)\n\n* add func_80062708\n\n* add func_80056D8C\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: Sezzary <sezzary@outlook.com>\n\n---------\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":47.8394,"total_code":2879592,"matched_code":1372376,"matched_code_percent":47.658695,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4558,"matched_functions_percent":69.715515,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T21:50:29Z","commit_sha":"20d7fa12041c6ec39dd702f4c79fba7c2b4baa6a","commit_message":"MAP1_S01: func_800D7F18 => Event_PianoPuzzle","measures":{"fuzzy_match_percent":47.695766,"total_code":2879592,"matched_code":1368240,"matched_code_percent":47.515064,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4556,"matched_functions_percent":69.68491,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T21:15:20Z","commit_sha":"edb0e3995f0852c1cd8329469803142a861dac13","commit_message":"Bodyprog: Hack fix\n\nIt broke Windows compilation. @emoose fixed it","measures":{"fuzzy_match_percent":47.638954,"total_code":2879592,"matched_code":1366604,"matched_code_percent":47.458252,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4555,"matched_functions_percent":69.669624,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T20:12:07Z","commit_sha":"18d06b47c59bd2e5a01a2711bf59e6ee8a4e6c07","commit_message":"maps: remove unused `sharedData_800E22E4_0_s01` sym","measures":{"fuzzy_match_percent":47.638954,"total_code":2879592,"matched_code":1366604,"matched_code_percent":47.458252,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4555,"matched_functions_percent":69.669624,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T19:41:36Z","commit_sha":"4f90aaed8fbb8e9e57cee42ac7e2936bc8927b41","commit_message":"bodyprog: fix `NON_MATCHING` funcs with new split\n\nGuess new split changes alignment of variables in the .o file of the split\neg. something that landed at 0xC in the previous split (and gets aligned & moved to 0x10), now might land at 0x0 and not need alignment.\n(wonder if these alignment changes could help figure out what splits should actually look like...)","measures":{"fuzzy_match_percent":47.638954,"total_code":2879592,"matched_code":1366604,"matched_code_percent":47.458252,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4555,"matched_functions_percent":69.669624,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":147,"complete_units":0}},{"timestamp":"2025-10-29T19:15:53Z","commit_sha":"f7a06dc6f889efc75a0c18f036d489b21632b3c9","commit_message":"characters: deobfuscate human func names, fixups","measures":{"fuzzy_match_percent":47.638954,"total_code":2879592,"matched_code":1366604,"matched_code_percent":47.458252,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":4555,"matched_functions_percent":69.669624,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-29T18:25:58Z","commit_sha":"c93fe699a6536958d50907b037ba87b517b31c8b","commit_message":"MAP1_S02: func_800CBC98","measures":{"fuzzy_match_percent":47.624786,"total_code":2879592,"matched_code":1366196,"matched_code_percent":47.44408,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4554,"matched_functions_percent":69.64368,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-29T18:04:02Z","commit_sha":"7d6d3a93427c1a07d6ce75df2bd741a0534ed9d0","commit_message":"MAP1_S02: func_800CBD58","measures":{"fuzzy_match_percent":47.61812,"total_code":2879592,"matched_code":1366004,"matched_code_percent":47.437416,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4553,"matched_functions_percent":69.62838,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-29T17:34:03Z","commit_sha":"7d358de01fb27a33d6dea1a49aa17762c2809561","commit_message":"Chara_Cheryl: deobfuscate func names\n\nSeems most of the human NPC charas use the same kind of funcs, will\nprobably copy these names over to those too.","measures":{"fuzzy_match_percent":47.61534,"total_code":2879592,"matched_code":1365924,"matched_code_percent":47.434635,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4552,"matched_functions_percent":69.61309,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-29T14:36:14Z","commit_sha":"1dd6dd51b4ee14b1b9fa1ffc6382d36d2234b04c","commit_message":"add func_8005E414, func_800803FC (#454)\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":47.61534,"total_code":2879592,"matched_code":1365924,"matched_code_percent":47.434635,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4552,"matched_functions_percent":69.61309,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-29T10:48:52Z","commit_sha":"110c6b84d20da1e7856cace047db7390545333a3","commit_message":"General maintenance (#453)\n\n* Redo renames\n\n* Migrate cleanup\n\n* Migrate cleanup\n\n* Migrate game.h\n\n* Migrate cleanup\n\n* Migrate cleanup\n\n* Migrate cleanup\n\n* Migrate cleanup\n\n* Migrate cleanup\n\n* Migrate cleanup\n\n* Migrate cleanup\n\n* Fix names\n\n* Update map1_s01.c\n\n* Revert \"Migrate cleanup\"\n\nThis reverts commit 54c73a3d4168cd412844deccb50fec2f8c45d930.\n\n* Revert \"Update map1_s01.c\"\n\nThis reverts commit bef12c9bbd72fc63d1a10fd4429395d5e8b57aa3.\n\n* Revert \"Fix names\"\n\nThis reverts commit 55d7d7d9e59ae01b94f26d2db9434fb84783c710.\n\n* Revert \"Migrate cleanup\"\n\nThis reverts commit 4ce2a7efcbb47297c2a4d4f6cc246d47ea69ba0e.\n\n* Update map1_s00.c\n\n* Fixes","measures":{"fuzzy_match_percent":47.59228,"total_code":2879592,"matched_code":1365260,"matched_code_percent":47.41158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4550,"matched_functions_percent":69.582504,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T22:06:34Z","commit_sha":"24cecb5acc9980bd5d0457d6d0a8232620520d3d","commit_message":"MAP1_S02: func_800DAD2C","measures":{"fuzzy_match_percent":47.59228,"total_code":2879592,"matched_code":1365260,"matched_code_percent":47.41158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4550,"matched_functions_percent":69.582504,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T21:47:37Z","commit_sha":"07025879780bce9adf3891d661868384989b535b","commit_message":"MAP1_S02: func_800DB058","measures":{"fuzzy_match_percent":47.564083,"total_code":2879592,"matched_code":1364448,"matched_code_percent":47.38338,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4549,"matched_functions_percent":69.56721,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T21:10:34Z","commit_sha":"afb7fe897eea9da135bf84dab28edf73fae0a087","commit_message":"MAP1_S02: func_800DEC88","measures":{"fuzzy_match_percent":47.539913,"total_code":2879592,"matched_code":1363752,"matched_code_percent":47.35921,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4548,"matched_functions_percent":69.55192,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T19:23:19Z","commit_sha":"7ff66d21f35920075c54e1bc1809ccbdd4c43ff0","commit_message":"MAP1_S01: func_800D7308","measures":{"fuzzy_match_percent":47.53269,"total_code":2879592,"matched_code":1363544,"matched_code_percent":47.351986,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4547,"matched_functions_percent":69.53663,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T19:05:55Z","commit_sha":"004d4e1f5d23728b9110c42a7945cf064a25d3c7","commit_message":"MAP1_S01: func_800D76F4","measures":{"fuzzy_match_percent":47.49782,"total_code":2879592,"matched_code":1362540,"matched_code_percent":47.31712,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4546,"matched_functions_percent":69.52133,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T18:56:37Z","commit_sha":"3e9bd50434150bc76ce5a6658fcff21952ce83ad","commit_message":"MAP1_S01: func_800D7864","measures":{"fuzzy_match_percent":47.48685,"total_code":2879592,"matched_code":1362224,"matched_code_percent":47.30615,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4545,"matched_functions_percent":69.50604,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T15:08:50Z","commit_sha":"7c5cf526f228b5eab85cf4e6b33f0e4f809e5d90","commit_message":"maps: share `Map_RoomIdxGet` in 18 maps\n\nTODO:\n\nSame customization:\nmap2_s02 800E993C\nmap4_s00 800cc7a0\nmap4_s02 800E9D38\nmap4_s03 800D607C\nmap4_s05 800D5B0C\nmap4_s06 800CC7A0\n\nSame customization:\nmap6_s00 800eab10\nmap6_s02 800CE88C\n\nSame customization:\nmap6_s04 800e1114\nmap6_s05 800CC7B4\n\nUnique customizations:\nmap5_s00 800d6508\nmap5_s01 800eb470\nmap6_s03 800d7f24","measures":{"fuzzy_match_percent":47.428787,"total_code":2879592,"matched_code":1360552,"matched_code_percent":47.248085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4544,"matched_functions_percent":69.490746,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T14:26:39Z","commit_sha":"83144d17f18c0eba44de9847c874135003bc1405","commit_message":"maps: merge `sharedFunc_800D92AC_0_s00` with `Map_RoomIdxGet`","measures":{"fuzzy_match_percent":47.369057,"total_code":2879592,"matched_code":1358832,"matched_code_percent":47.18835,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4533,"matched_functions_percent":69.322525,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T13:01:39Z","commit_sha":"832fbfc00e0af43a914f623024b2dfe6e8fcf60e","commit_message":"maps: calc `MAP_ROOM_STRIDE_Z` from min/max","measures":{"fuzzy_match_percent":47.369057,"total_code":2879592,"matched_code":1358832,"matched_code_percent":47.18835,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4533,"matched_functions_percent":69.322525,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T12:57:00Z","commit_sha":"47e8548f429037813cec1a2d5e64ccd52decf29e","commit_message":"map7: share `Map_RoomIdxGet`\n\nTODO: work out MAP_ROOM_* values for other maps","measures":{"fuzzy_match_percent":47.369057,"total_code":2879592,"matched_code":1358832,"matched_code_percent":47.18835,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4533,"matched_functions_percent":69.322525,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T10:37:32Z","commit_sha":"7c35bf0abf9c33c15e493110c901ed6a1a93089e","commit_message":"MAP1_S01: func_800D6FE4","measures":{"fuzzy_match_percent":47.353218,"total_code":2879592,"matched_code":1358376,"matched_code_percent":47.172516,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4530,"matched_functions_percent":69.27665,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T09:10:40Z","commit_sha":"36fe3a16768c655158d6811e2a832da613ed0864","commit_message":"maps: small fixups","measures":{"fuzzy_match_percent":47.34947,"total_code":2879592,"matched_code":1358268,"matched_code_percent":47.168766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4529,"matched_functions_percent":69.26135,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T09:05:21Z","commit_sha":"ade74edb54aa2e779e2007b05fa3ea7c622002ee","commit_message":"maps: match 2 funcs\n\n`func_800D6778` looks almost same same as `Map_RoomIdxGet`, with some slightly different math.\nCould be some change made by compiler if that func made use of constants from map header, but not totally sure.\n\n`func_800DFDDC` seems like an earlier/unfinished version of `map7_s01::func_800D9C9C`\nbased on this version using `Sfx_Base` as sound IDs for things.\nWould say this was likely a copy-pasted func rather than sharedFunc, since this func probably\nlived inside the per-map events.c TU, rather than some shared TU.","measures":{"fuzzy_match_percent":47.34947,"total_code":2879592,"matched_code":1358268,"matched_code_percent":47.168766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4529,"matched_functions_percent":69.26135,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-28T05:16:20Z","commit_sha":"578d1ffd4fbf825a79d9f042523b88671b64180b","commit_message":"map7_s01: `func_800D9C9C`","measures":{"fuzzy_match_percent":47.216812,"total_code":2879592,"matched_code":1354448,"matched_code_percent":47.03611,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4527,"matched_functions_percent":69.230774,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-27T21:30:10Z","commit_sha":"52724e4f3c78f1e8f84798b4528cb9a3ca7d91f7","commit_message":"MAP1_S01: func_800D7058, func_800D70EC, func_800D7180","measures":{"fuzzy_match_percent":47.085403,"total_code":2879592,"matched_code":1350664,"matched_code_percent":46.9047,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4526,"matched_functions_percent":69.21548,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-27T20:22:34Z","commit_sha":"70d5aab00d85fe39d4a1af67f0f5be3790c4ddd9","commit_message":"MAP0_S00: func_800D9748 => MapEvent_OpeningCutscene","measures":{"fuzzy_match_percent":47.069984,"total_code":2879592,"matched_code":1350220,"matched_code_percent":46.889282,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4523,"matched_functions_percent":69.1696,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-27T20:07:58Z","commit_sha":"078c23878fbaa6f384ebe7fb20ff49657ab6cb87","commit_message":"MAP1_S01: func_800D87C0","measures":{"fuzzy_match_percent":47.013866,"total_code":2879592,"matched_code":1348604,"matched_code_percent":46.833164,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4522,"matched_functions_percent":69.154305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T19:00:39Z","commit_sha":"9757fb231a3ad8a4f464977e4757558fc4afc094","commit_message":"MAP1_S01: func_800D91EC","measures":{"fuzzy_match_percent":46.923435,"total_code":2879592,"matched_code":1346000,"matched_code_percent":46.742733,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4521,"matched_functions_percent":69.13901,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T18:39:20Z","commit_sha":"c45258f581a5fde1f5130aca6ea53fd8c771fb4d","commit_message":"MAP1_S01: func_800D9DDC","measures":{"fuzzy_match_percent":46.89538,"total_code":2879592,"matched_code":1345192,"matched_code_percent":46.714672,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4520,"matched_functions_percent":69.12372,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T18:31:47Z","commit_sha":"ab7d8cd43eaebd3812977c885a75e35b1cd628ac","commit_message":"MAP1_S01: func_800D9EC4","measures":{"fuzzy_match_percent":46.88732,"total_code":2879592,"matched_code":1344960,"matched_code_percent":46.706615,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4519,"matched_functions_percent":69.10843,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T15:50:57Z","commit_sha":"ab62607858ca03b49999afab6204e6e316e0de0f","commit_message":"maps: match 3 funcs","measures":{"fuzzy_match_percent":46.86801,"total_code":2879592,"matched_code":1344404,"matched_code_percent":46.68731,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4518,"matched_functions_percent":69.09313,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T12:23:11Z","commit_sha":"e3b701e41dca4b253cfc365b483f0dad24494d08","commit_message":"MAP1_S01: func_800D9514","measures":{"fuzzy_match_percent":46.629646,"total_code":2879592,"matched_code":1337540,"matched_code_percent":46.44894,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4509,"matched_functions_percent":68.9555,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T11:13:58Z","commit_sha":"67a9e4cc68c9ff92306af44abbd2c03290eacecb","commit_message":"MAP1_S00: func_800D77F8","measures":{"fuzzy_match_percent":46.55158,"total_code":2879592,"matched_code":1335292,"matched_code_percent":46.370876,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4508,"matched_functions_percent":68.9402,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T11:03:09Z","commit_sha":"a1c24597e02a02f374d20984c43ec6c6fc80156f","commit_message":"MAP7_S02: D_800E839C => MAP_POINTS","measures":{"fuzzy_match_percent":46.54783,"total_code":2879592,"matched_code":1335184,"matched_code_percent":46.367123,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4507,"matched_functions_percent":68.92491,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T10:58:47Z","commit_sha":"9eac0836bc673f8af77281f9a21d02cb01ec3a16","commit_message":"MAP1_S00: func_800D786C, func_800D7900, func_800D7994","measures":{"fuzzy_match_percent":46.54783,"total_code":2879592,"matched_code":1335184,"matched_code_percent":46.367123,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4507,"matched_functions_percent":68.92491,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T10:21:44Z","commit_sha":"cc7ff30612e90fc88cbcc4032e511fcc150ae495","commit_message":"MAP1_S00: func_800D7B2C","measures":{"fuzzy_match_percent":46.53241,"total_code":2879592,"matched_code":1334740,"matched_code_percent":46.351704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4504,"matched_functions_percent":68.87903,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T09:16:13Z","commit_sha":"7940a7f86b77fe1b9313c5bf6978322e90b1430a","commit_message":"MAP1_S00: func_800D7EB0","measures":{"fuzzy_match_percent":46.504765,"total_code":2879592,"matched_code":1333944,"matched_code_percent":46.324062,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4503,"matched_functions_percent":68.86375,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-26T09:07:06Z","commit_sha":"a568342ac4f7b672dc3c8f590dee7be561756581","commit_message":"MAP1_S00: func_800D81CC","measures":{"fuzzy_match_percent":46.477123,"total_code":2879592,"matched_code":1333148,"matched_code_percent":46.29642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4502,"matched_functions_percent":68.84845,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-25T23:39:47Z","commit_sha":"f8a947990e6319dafcb5c37dab14dd06a997d2f1","commit_message":"maps: split `Ai_Kaufmann`","measures":{"fuzzy_match_percent":46.446564,"total_code":2879592,"matched_code":1332268,"matched_code_percent":46.265858,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4500,"matched_functions_percent":68.81786,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":146,"complete_units":0}},{"timestamp":"2025-10-25T23:11:08Z","commit_sha":"3a4695b5659de90dce969d1743148c42a7a59743","commit_message":"maps: split `Ai_Dahlia`","measures":{"fuzzy_match_percent":46.446564,"total_code":2879592,"matched_code":1332268,"matched_code_percent":46.265858,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4500,"matched_functions_percent":68.81786,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":138,"complete_units":0}},{"timestamp":"2025-10-25T21:53:01Z","commit_sha":"ff659f55db1849d9a56e53cf015eb16c188b5b0f","commit_message":"MAP1_S00: func_800D85D8","measures":{"fuzzy_match_percent":46.446564,"total_code":2879592,"matched_code":1332268,"matched_code_percent":46.265858,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4500,"matched_functions_percent":68.81786,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T21:43:45Z","commit_sha":"1a4d3e50e02c54c95a23118be6702afaca954d34","commit_message":"MAP1_S00: func_800D8948","measures":{"fuzzy_match_percent":46.416004,"total_code":2879592,"matched_code":1331388,"matched_code_percent":46.2353,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4499,"matched_functions_percent":68.802574,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T21:00:31Z","commit_sha":"ed1a5d9d8082aebd269e68c9e0e51efad26a6a5b","commit_message":"MAP1_S00: Inline rodata, cleanup\n\nfunc_800D8CF0 => Event_Boiler0\nfunc_800D8FE0 => Event_Boiler1\nfunc_800D9148 => Event_Boiler2\nfunc_800D92D8 => Map_WorldObjectsInit\nfunc_800D9764 => Map_WorldObjectsUpdate","measures":{"fuzzy_match_percent":46.385025,"total_code":2879592,"matched_code":1330496,"matched_code_percent":46.204323,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4498,"matched_functions_percent":68.78728,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T20:18:24Z","commit_sha":"3b46c5644469bae868f80536e704803696fef245","commit_message":"MAP1_S00: func_800D8FE0","measures":{"fuzzy_match_percent":46.385025,"total_code":2879592,"matched_code":1330496,"matched_code_percent":46.204323,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4498,"matched_functions_percent":68.78728,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T20:14:42Z","commit_sha":"252cec1d4d97cced110696a3f9c0bd8d37a1edff","commit_message":"MAP1_S00: func_800D8CF0","measures":{"fuzzy_match_percent":46.372524,"total_code":2879592,"matched_code":1330136,"matched_code_percent":46.191822,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4497,"matched_functions_percent":68.77198,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T19:57:49Z","commit_sha":"6c5d2679d8de7d90a8c733501d25b1eca43181aa","commit_message":"MAP1_S00: func_800D9764","measures":{"fuzzy_match_percent":46.34641,"total_code":2879592,"matched_code":1329384,"matched_code_percent":46.165707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4496,"matched_functions_percent":68.75669,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T08:39:58Z","commit_sha":"ba282421de9a7fa9b69f7c30a59dffdf76a53a6a","commit_message":"MAP1_S05: func_800CBE7C\n\nAlso rename s_MapHdr_field_4C. Splat requires structs to have first\ncharacter of a struct name to be a capital letter.","measures":{"fuzzy_match_percent":46.194027,"total_code":2879592,"matched_code":1324996,"matched_code_percent":46.013325,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4494,"matched_functions_percent":68.726105,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T08:30:48Z","commit_sha":"9dee7e7292b5226ed8048aefac7ac1b8aec0bb16","commit_message":"Replace and rename s_mapHeader_field_54 with s_func_800625F4\n\nI made a mistake, this table is at map header field_4C which we have a\nstruct for called `s_func_800625F4`. While at it, rename it to\n`s_mapHeader_field_4C`","measures":{"fuzzy_match_percent":46.185413,"total_code":2879592,"matched_code":1324748,"matched_code_percent":46.00471,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4493,"matched_functions_percent":68.71081,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T08:06:58Z","commit_sha":"97281e9d6db1146971237a9ca15a5391d503ecd4","commit_message":"MAP1_S05: func_800D17BC","measures":{"fuzzy_match_percent":46.185413,"total_code":2879592,"matched_code":1324748,"matched_code_percent":46.00471,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4493,"matched_functions_percent":68.71081,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-25T02:23:11Z","commit_sha":"9976ce4a10e7fbb7475a430fc3d321787a79a166","commit_message":"bodyprog: func_80063A50 fix\n\nIn my preparation for Windows support I ran into a missmatch caused by this function, specifically `*(s32*)&ptr->field_164` was causing it, I asked for help and @emoose came up with two solutions: add .vx (as field_164 is a pointer to a SVECTOR) or use a macro they invented. I went for the second as they also mention that there are other instances that may benefit from it.","measures":{"fuzzy_match_percent":46.167774,"total_code":2879592,"matched_code":1324240,"matched_code_percent":45.98707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4492,"matched_functions_percent":68.69552,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-24T23:59:22Z","commit_sha":"4d4997d6a2b651dbd58cb41d85a0fc577a1c9616","commit_message":"shared.h: remove alessa funcs","measures":{"fuzzy_match_percent":46.167774,"total_code":2879592,"matched_code":1324240,"matched_code_percent":45.98707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4492,"matched_functions_percent":68.69552,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-24T23:56:57Z","commit_sha":"cde2ba99585ddb10238e7ebf37aaf21573972d3b","commit_message":"maps: split `Ai_Alessa` & `Ai_Cybil`\n\nWeird alignment issue with Dahlia code being moved to different .c file in map6_s04\nNot really sure how to fix that properly yet.","measures":{"fuzzy_match_percent":46.167774,"total_code":2879592,"matched_code":1324240,"matched_code_percent":45.98707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4492,"matched_functions_percent":68.69552,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":133,"complete_units":0}},{"timestamp":"2025-10-24T22:33:45Z","commit_sha":"0eca1780979d389f0fe47ce0165aaf28f6cdf5d0","commit_message":"map1: match `sharedFunc_800D0054_1_s05`","measures":{"fuzzy_match_percent":46.167774,"total_code":2879592,"matched_code":1324240,"matched_code_percent":45.98707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4492,"matched_functions_percent":68.69552,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":114,"complete_units":0}},{"timestamp":"2025-10-24T22:06:39Z","commit_sha":"7fd3570d8fa61017b412c1c12d47b80a5b1717f5","commit_message":"MAP1_S05: func_800D4530","measures":{"fuzzy_match_percent":46.15916,"total_code":2879592,"matched_code":1323992,"matched_code_percent":45.97846,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4490,"matched_functions_percent":68.66493,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":114,"complete_units":0}},{"timestamp":"2025-10-24T22:00:48Z","commit_sha":"2ac6c39ce4725a1d45e0ef7810a0a99010c6bee9","commit_message":"MAP1_S05: func_800D263C","measures":{"fuzzy_match_percent":46.15569,"total_code":2879592,"matched_code":1323892,"matched_code_percent":45.974983,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4489,"matched_functions_percent":68.649635,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":114,"complete_units":0}},{"timestamp":"2025-10-24T21:56:34Z","commit_sha":"8dfdc1c4d728cb6fe2d808c73b8930e245af6909","commit_message":"Makefile: use .d files to track changes in headers/includes","measures":{"fuzzy_match_percent":46.153465,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":114,"complete_units":0}},{"timestamp":"2025-10-24T21:37:04Z","commit_sha":"bc36eb6e4f39887e94e0e47ea21f62cbea2e9aa5","commit_message":"characters: fixups","measures":{"fuzzy_match_percent":46.153465,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":114,"complete_units":0}},{"timestamp":"2025-10-24T21:31:59Z","commit_sha":"5839e129f1b8ddd58b1595e6233d81b8da5ed605","commit_message":"maps: split Ai_Lisa -> `Chara_Lisa.c`","measures":{"fuzzy_match_percent":46.153465,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":114,"complete_units":0}},{"timestamp":"2025-10-24T20:57:52Z","commit_sha":"adc884d895cee3c4e596a07e001cdf2b485773d8","commit_message":"Chara_BloodyLisa: fixups","measures":{"fuzzy_match_percent":46.153465,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":108,"complete_units":0}},{"timestamp":"2025-10-24T20:52:55Z","commit_sha":"42551898629c77ea154e9e74569f819dbf03ab4a","commit_message":"map7: split Ai_BloodyLisa -> `Chara_BloodyLisa.c`","measures":{"fuzzy_match_percent":46.153465,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":108,"complete_units":0}},{"timestamp":"2025-10-24T20:23:06Z","commit_sha":"d81bb997b7e749a354dfef93d21839a261c28d61","commit_message":"maps: split Ai_GhostChildAlessa -> `Chara_GhostChildAlessa.c`","measures":{"fuzzy_match_percent":46.15366,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-10-24T19:58:56Z","commit_sha":"7d4a9b3cca6cb782c09b4bb64577ce58ad512a03","commit_message":"map0_s00: move chara_cheryl code to `maps/characters/chara_cheryl.c`","measures":{"fuzzy_match_percent":46.15366,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":97,"complete_units":0}},{"timestamp":"2025-10-24T19:47:09Z","commit_sha":"9e7c204d7d52826e249e4f061212f09462a71315","commit_message":"map0_s00: split Ai_Cheryl code to `chara_cheryl.c`","measures":{"fuzzy_match_percent":46.15366,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":97,"complete_units":0}},{"timestamp":"2025-10-24T19:24:41Z","commit_sha":"05aba75535457c469e0794406e321f22331df6cd","commit_message":"map0_s00: use dahlia properties for non-player chara","measures":{"fuzzy_match_percent":46.15366,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T19:10:12Z","commit_sha":"f17150cdec83b0cc1109f3776f17442d177e7910","commit_message":"MAP0_S00: func_800DADD4","measures":{"fuzzy_match_percent":46.15366,"total_code":2879592,"matched_code":1323828,"matched_code_percent":45.972763,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4488,"matched_functions_percent":68.634346,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T18:58:52Z","commit_sha":"08b4198e5af459462c7862f3f9f157e76c53d01e","commit_message":"MAP4_01: add missing sym entry, func_800D1F54","measures":{"fuzzy_match_percent":46.143383,"total_code":2879592,"matched_code":1323532,"matched_code_percent":45.962482,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4487,"matched_functions_percent":68.61906,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T18:53:09Z","commit_sha":"5797d9c87049b329d7d808397c10acdba8ad5e30","commit_message":"MAP4_S01: func_800D1FF0","measures":{"fuzzy_match_percent":46.133934,"total_code":2879592,"matched_code":1323260,"matched_code_percent":45.953037,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4485,"matched_functions_percent":68.58847,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T18:31:43Z","commit_sha":"9ad08587ed370b4d09d39629f2ca3f9f8e17b00b","commit_message":"MAP4_S01: func_800CC19C","measures":{"fuzzy_match_percent":46.09754,"total_code":2879592,"matched_code":1322212,"matched_code_percent":45.916645,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4484,"matched_functions_percent":68.57317,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T18:30:28Z","commit_sha":"f5c64cfae9eab57915d23a4b479a3e2558650eeb","commit_message":"bodyprog: func_8005DE0C","measures":{"fuzzy_match_percent":46.08726,"total_code":2879592,"matched_code":1321916,"matched_code_percent":45.906364,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4483,"matched_functions_percent":68.557884,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T08:39:37Z","commit_sha":"a9d211f624a9349c3a1c854306d70c118cbb53d8","commit_message":"MAP4_S01: func_800D4410","measures":{"fuzzy_match_percent":46.06226,"total_code":2879592,"matched_code":1321196,"matched_code_percent":45.88136,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4482,"matched_functions_percent":68.54259,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T07:55:24Z","commit_sha":"f8c9ddf5cd2d6a6a9ee31e0bd1d6bce810b4debd","commit_message":"MAP4_S01: func_800D2F74","measures":{"fuzzy_match_percent":46.014614,"total_code":2879592,"matched_code":1319824,"matched_code_percent":45.833717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4481,"matched_functions_percent":68.5273,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T07:20:42Z","commit_sha":"eeafb25a34f000fb945318bb4a50526171186e77","commit_message":"compilation fix","measures":{"fuzzy_match_percent":45.97308,"total_code":2879592,"matched_code":1318628,"matched_code_percent":45.79218,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4480,"matched_functions_percent":68.512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-24T07:02:31Z","commit_sha":"3e00dabc101f6288fe8a7fa78b51fa43daf2a626","commit_message":"BODYPROG: SD system investigation + rodata migration","measures":{"fuzzy_match_percent":45.97308,"total_code":2879592,"matched_code":1318628,"matched_code_percent":45.79218,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4480,"matched_functions_percent":68.512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-23T16:39:59Z","commit_sha":"3bc93294acd4a5cd888726d8f783d19a49c42ea1","commit_message":"MAP4_S01: func_800D2408","measures":{"fuzzy_match_percent":45.97308,"total_code":2879592,"matched_code":1318628,"matched_code_percent":45.79218,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4480,"matched_functions_percent":68.512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-23T12:03:44Z","commit_sha":"0871dad3781747a9e472b248b4e075af8b41f7c1","commit_message":"MAP4_S01: func_800D49C4, func_800D4BA4","measures":{"fuzzy_match_percent":45.871536,"total_code":2879592,"matched_code":1315704,"matched_code_percent":45.69064,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4479,"matched_functions_percent":68.49671,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-23T07:45:04Z","commit_sha":"d5ca7601fb28fc96730d8759dc956416efdaedd0","commit_message":"add missing sharedFunc_800CE8B8_0_s02.h","measures":{"fuzzy_match_percent":45.82764,"total_code":2879592,"matched_code":1314440,"matched_code_percent":45.646744,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4477,"matched_functions_percent":68.466125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-23T02:28:44Z","commit_sha":"667fe0eb708407e936fcfd68024c73cd37e81a20","commit_message":"maps: match `sharedFunc_800CEEDC_3_s02`","measures":{"fuzzy_match_percent":45.80986,"total_code":2879592,"matched_code":1313928,"matched_code_percent":45.628963,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4475,"matched_functions_percent":68.43554,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-23T01:55:44Z","commit_sha":"a48fd25e631d94e92cd29b8df2f9d9bb6f1c9e5c","commit_message":"maps: match `sharedSymbol_800D8A68_0_s01`","measures":{"fuzzy_match_percent":45.631504,"total_code":2879592,"matched_code":1308792,"matched_code_percent":45.450607,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4471,"matched_functions_percent":68.374374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-23T00:54:47Z","commit_sha":"4ee827aeb47327c5123d551237d44bd0e96817ce","commit_message":"maps: match `sharedSymbol_800CF470_3_s00`","measures":{"fuzzy_match_percent":45.052116,"total_code":2879592,"matched_code":1292108,"matched_code_percent":44.871216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4467,"matched_functions_percent":68.3132,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T20:40:12Z","commit_sha":"d7d655dfb59dc39328e7b14cae290b30ac0e992b","commit_message":"MAP2_S04: func_800CCB64 (100% match!)","measures":{"fuzzy_match_percent":44.611637,"total_code":2879592,"matched_code":1279424,"matched_code_percent":44.43074,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4462,"matched_functions_percent":68.23673,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T18:42:59Z","commit_sha":"81c8c44dfbfafb5ac87056f9e7a1f79f11a02fc7","commit_message":"maps: match `sharedSymbol_800D0ADC_3_s04`","measures":{"fuzzy_match_percent":44.60733,"total_code":2879592,"matched_code":1279300,"matched_code_percent":44.426434,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4461,"matched_functions_percent":68.221436,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T14:11:20Z","commit_sha":"9267918c470ead46e4d761debe31722608d3ed7d","commit_message":"Give names to things in MAP2_S01, MAP2_S04","measures":{"fuzzy_match_percent":44.23089,"total_code":2879592,"matched_code":1268460,"matched_code_percent":44.04999,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4456,"matched_functions_percent":68.14497,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T13:40:42Z","commit_sha":"da5c94846d6c0e4c067eedff2c614dd10e3b0173","commit_message":"MAP2_S04: func_800CD2AC","measures":{"fuzzy_match_percent":44.23089,"total_code":2879592,"matched_code":1268460,"matched_code_percent":44.04999,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4456,"matched_functions_percent":68.14497,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T10:49:33Z","commit_sha":"dba95a4c708a1d69e120a225bfb71892c7b3181a","commit_message":"MAP2_S04: sharedFunc_800CB6B0_0_s00","measures":{"fuzzy_match_percent":44.144485,"total_code":2879592,"matched_code":1265972,"matched_code_percent":43.96359,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4454,"matched_functions_percent":68.11439,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T10:37:58Z","commit_sha":"79f001fe907e2c4cae88bf070eb0722a1504f1b7","commit_message":"MAP2_S04: func_800CCF08","measures":{"fuzzy_match_percent":44.131985,"total_code":2879592,"matched_code":1265612,"matched_code_percent":43.951088,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4453,"matched_functions_percent":68.0991,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T10:35:52Z","commit_sha":"de3cd7038ea18340c066053619aa85756a161cd0","commit_message":"MAP2_S04: func_800CCE74","measures":{"fuzzy_match_percent":44.126846,"total_code":2879592,"matched_code":1265464,"matched_code_percent":43.945946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4452,"matched_functions_percent":68.0838,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-22T09:13:31Z","commit_sha":"134cad8452a2840a3d78c74c4264ca11dd93a1a8","commit_message":"MAP2_S04: Map_RoomIdxGet","measures":{"fuzzy_match_percent":44.121708,"total_code":2879592,"matched_code":1265316,"matched_code_percent":43.94081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4451,"matched_functions_percent":68.06851,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T23:46:10Z","commit_sha":"6e0b2b4e879d55b688e5c00d5ad60c901c8ca2a4","commit_message":"map7: match `sharedFunc_800D4C0C_7_s01`, fixups","measures":{"fuzzy_match_percent":44.11643,"total_code":2879592,"matched_code":1265164,"matched_code_percent":43.935528,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4450,"matched_functions_percent":68.05322,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T22:14:47Z","commit_sha":"e3c2c22e2b4415ea77d58d48c1735cbd4724cfb8","commit_message":"sharedSymbol_800CD4A0_2_s01\n\nbig thanks to @emoose for the ifdef tweaks to make this large function match for the map variants.\n\nWith this commit all of MAP2_S01 code was decompiled.","measures":{"fuzzy_match_percent":44.08448,"total_code":2879592,"matched_code":1264244,"matched_code_percent":43.90358,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4448,"matched_functions_percent":68.02263,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T20:15:31Z","commit_sha":"e09a566692e67eeac3757fb00b934082bf301b43","commit_message":"map2_s01: `func_800CB010` -> `sharedFunc_800CB6B0_0_s00`","measures":{"fuzzy_match_percent":43.61511,"total_code":2879592,"matched_code":1250728,"matched_code_percent":43.434208,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4442,"matched_functions_percent":67.93088,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T20:01:26Z","commit_sha":"d88db6cbb8b514bfd5445db0554e87b02034a9e3","commit_message":"map6_s01: `D_800D39A0` -> `DAHLIA_ANIM_INFOS`\n\nTODO: extract KAUFMANN_ANIM_INFOS from the maps that use it as default case inside `sharedFunc_800D8964_0_s00` and find what anim info they actually are.\n(one map I checked it matched DAHLIA, but afaik it is KAUFMANN in some other maps)","measures":{"fuzzy_match_percent":43.61511,"total_code":2879592,"matched_code":1250728,"matched_code_percent":43.434208,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4442,"matched_functions_percent":67.93088,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T15:43:26Z","commit_sha":"00daa04d9d77510c11e26ea253c7d4f3c6a8a849","commit_message":"sharedFunc_800CD280_2_s01","measures":{"fuzzy_match_percent":43.61511,"total_code":2879592,"matched_code":1250728,"matched_code_percent":43.434208,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4442,"matched_functions_percent":67.93088,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T15:35:18Z","commit_sha":"d1a8907b05ac6af5fcd1dfa1e9a27c5f1492db17","commit_message":"MAP2_S01: func_800CB010","measures":{"fuzzy_match_percent":43.600105,"total_code":2879592,"matched_code":1250296,"matched_code_percent":43.419205,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4436,"matched_functions_percent":67.83912,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T14:09:36Z","commit_sha":"3fab72a49d6ec8e3d7537d2dbc29563cf7ef33b5","commit_message":"sharedFunc_800CD2C8_2_s01","measures":{"fuzzy_match_percent":43.587605,"total_code":2879592,"matched_code":1249936,"matched_code_percent":43.406704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4435,"matched_functions_percent":67.82383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T13:33:59Z","commit_sha":"badd5e44b601c960d81f17042833a3f9cb32343d","commit_message":"MAP2_S01: func_800CEB9C, func_800CEC30","measures":{"fuzzy_match_percent":43.489254,"total_code":2879592,"matched_code":1247104,"matched_code_percent":43.308357,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4429,"matched_functions_percent":67.73207,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T13:21:03Z","commit_sha":"81d5f74a3cffe21093ae04f17c765798a112601e","commit_message":"MAP2_S01: func_800CE88C","measures":{"fuzzy_match_percent":43.47453,"total_code":2879592,"matched_code":1246680,"matched_code_percent":43.293633,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4427,"matched_functions_percent":67.701485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T13:18:09Z","commit_sha":"1f18be09fcc03bfbc11354824f55a0ba463c7064","commit_message":"add missing Map_RoomIdxGet.h","measures":{"fuzzy_match_percent":43.470226,"total_code":2879592,"matched_code":1246556,"matched_code_percent":43.28933,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4426,"matched_functions_percent":67.68619,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-21T12:15:11Z","commit_sha":"a05d9a796b4f3cd715d579ef047f1357034f6f35","commit_message":"MAP2_S01: func_800CED88","measures":{"fuzzy_match_percent":43.464947,"total_code":2879592,"matched_code":1246404,"matched_code_percent":43.28405,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4425,"matched_functions_percent":67.6709,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T21:39:55Z","commit_sha":"d79398d081060ef381f59bf563a11a9a1dda0b19","commit_message":"map7_s02: match 2 funcs","measures":{"fuzzy_match_percent":43.37549,"total_code":2879592,"matched_code":1243828,"matched_code_percent":43.19459,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4424,"matched_functions_percent":67.6556,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T18:27:50Z","commit_sha":"8c7f6a5339b46d869a61b9ea99216506fe24d61f","commit_message":"MAP2_S01: func_800CF938","measures":{"fuzzy_match_percent":43.303673,"total_code":2879592,"matched_code":1241760,"matched_code_percent":43.122776,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4422,"matched_functions_percent":67.62502,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T17:56:40Z","commit_sha":"d2b7e7114cf767f9819661bd7799428667a45c26","commit_message":"map7_s02: match `func_800DF21C`","measures":{"fuzzy_match_percent":43.259777,"total_code":2879592,"matched_code":1240496,"matched_code_percent":43.07888,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4420,"matched_functions_percent":67.59444,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T16:15:28Z","commit_sha":"540de33150da0ab81442493737d57bbcf9bcffa6","commit_message":"maps: use `Math_Vector2MagCalc`","measures":{"fuzzy_match_percent":43.186714,"total_code":2879592,"matched_code":1238392,"matched_code_percent":43.005814,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4419,"matched_functions_percent":67.57914,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T16:00:14Z","commit_sha":"3729bef7ef4a888e6e790ebb0dae939ccd149903","commit_message":"maps: match 6 funcs","measures":{"fuzzy_match_percent":43.186714,"total_code":2879592,"matched_code":1238392,"matched_code_percent":43.005814,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4419,"matched_functions_percent":67.57914,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T10:07:12Z","commit_sha":"4ec459dbf1b9a2a1fe33fab09ca342ef98ee64de","commit_message":"bodyprog: match func_8008B474","measures":{"fuzzy_match_percent":43.077393,"total_code":2879592,"matched_code":1235244,"matched_code_percent":42.896496,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4413,"matched_functions_percent":67.48738,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T01:11:37Z","commit_sha":"3424cdbbeae43713b27e7b151dbb6d89b83fc968","commit_message":"maps: remove unused externs","measures":{"fuzzy_match_percent":43.060165,"total_code":2879592,"matched_code":1234748,"matched_code_percent":42.87927,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4412,"matched_functions_percent":67.47209,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-20T01:09:29Z","commit_sha":"f15016283274f953b21b1079495264dea8838f2c","commit_message":"maps: match 2 funcs\n\nclang-format wants to reformat `e_Sfx` whenever it gets added to, probably\nnot worth fighting it anymore","measures":{"fuzzy_match_percent":43.060165,"total_code":2879592,"matched_code":1234748,"matched_code_percent":42.87927,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4412,"matched_functions_percent":67.47209,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-19T16:34:00Z","commit_sha":"ce6a8aab53de59284bd3ea2df7038db57a7b58ed","commit_message":"MAP0_S02: match func_800CEFD4 => Map_WorldObjectsUpdate","measures":{"fuzzy_match_percent":42.93015,"total_code":2879592,"matched_code":1231004,"matched_code_percent":42.74925,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4410,"matched_functions_percent":67.441505,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-19T12:51:51Z","commit_sha":"8632cc42aee03d30228eb74246b47776b36dcb69","commit_message":"MAP0_S02: match func_800CED08 => Map_WorldObjectsInit","measures":{"fuzzy_match_percent":42.843746,"total_code":2879592,"matched_code":1228516,"matched_code_percent":42.66285,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4409,"matched_functions_percent":67.42621,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-19T02:33:41Z","commit_sha":"2083e3c0a43620a4a79a0a4825888eaec8b02fb0","commit_message":"General maintenance (#442)\n\n* Deobfuscation\n\n* Notation\n\n* Types\n\n* Tidying pass\n\n* Tidying pass\n\n* Minor fixups\n\n* Formatting\n\n* Formatting\n\n* Formatting\n\n* Formatting\n\n* Docs\n\n* Fix mismatch\n\n* Reformat opening brace\n\n* Update item_screens_2.c\n\n* bodyprog: mismatch fix\n\n* Formatting, demagicking\n\n---------\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: emoose <abc@cock.li>","measures":{"fuzzy_match_percent":42.818882,"total_code":2879592,"matched_code":1227800,"matched_code_percent":42.637985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4408,"matched_functions_percent":67.41092,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-18T20:54:35Z","commit_sha":"ef7c2fafeebea1c7fc461bf1eb45006eef27c12d","commit_message":"Misc: Github Actions only triggering in main repo\n\nSaw that Github allow to conditionate the trigger of Actions so I added a conditional that only allows compilations to run in case of being the main repo and if the changes in the commit weren't just in \\*.MD files, this way forks won't run into the a build error.","measures":{"fuzzy_match_percent":42.818882,"total_code":2879592,"matched_code":1227800,"matched_code_percent":42.637985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4408,"matched_functions_percent":67.41092,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-18T14:02:16Z","commit_sha":"c2f1b8e278377d5d667e8a7030f61edf42059049","commit_message":"func_800CE02C: correct arg type","measures":{"fuzzy_match_percent":42.818882,"total_code":2879592,"matched_code":1227800,"matched_code_percent":42.637985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4408,"matched_functions_percent":67.41092,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-18T13:52:27Z","commit_sha":"234e72061542b1fd4e00b8cf2df692a326e9ee6e","commit_message":"MAP0_S00: func_800CE544","measures":{"fuzzy_match_percent":42.818882,"total_code":2879592,"matched_code":1227800,"matched_code_percent":42.637985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4408,"matched_functions_percent":67.41092,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-17T02:27:38Z","commit_sha":"c99e10e73491d3bb02210cd9a5e19ba1bccac9ba","commit_message":"maps: move `HAS_PlayerState_*` to map headers","measures":{"fuzzy_match_percent":42.76665,"total_code":2879592,"matched_code":1226296,"matched_code_percent":42.585754,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4407,"matched_functions_percent":67.39563,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-17T02:08:28Z","commit_sha":"60fb7fd9e58d8caa30d871fe4a73229cfa02ebef","commit_message":"sharedFunc_800CDAA8_0_s02: reorder switch cases to mostly descending\n\nSwitch cases nned to match the order defined in each map, seems cases\nwere mostly setup descending but did have some random cases inserted\n\nUsed this script to find a best-fit descending order after noting the\nswitch cases used in each map, might come in useful for later map\noverlay switches\n\nhttps://gist.github.com/emoose/055c14b1b41d4abfdcaf26cb43f49f9d","measures":{"fuzzy_match_percent":42.76665,"total_code":2879592,"matched_code":1226296,"matched_code_percent":42.585754,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4407,"matched_functions_percent":67.39563,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-16T22:48:57Z","commit_sha":"fe7d4bd1aa67ec1d0ffef8335c07e2fc003a71ae","commit_message":"maps: use `KEYFRAME_PlayerState_*` defines instead of per-map ifdefs","measures":{"fuzzy_match_percent":42.76665,"total_code":2879592,"matched_code":1226296,"matched_code_percent":42.585754,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4407,"matched_functions_percent":67.39563,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-16T18:51:48Z","commit_sha":"2eeabd09512e6ad7b9221f13e3d26d756c0112f7","commit_message":"maps: finish sharing `sharedFunc_800CDAA8_0_s02`","measures":{"fuzzy_match_percent":42.76665,"total_code":2879592,"matched_code":1226296,"matched_code_percent":42.585754,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4407,"matched_functions_percent":67.39563,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-16T17:10:58Z","commit_sha":"9cc359fb97b1b5c1d803a5fa012d723e769721e7","commit_message":"maps: replace `sharedData_800CAB70_0_s00` with VECTOR3 initializer\n\nNeeded to allow both `sharedFunc_800CDAA8_0_s02` and `sharedFunc_800D670C_0_s00` to share same .rodata\n\nDidn't realize we could initialize `VECTOR3` inside func params, interesting","measures":{"fuzzy_match_percent":42.26033,"total_code":2879592,"matched_code":1211716,"matched_code_percent":42.079433,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4401,"matched_functions_percent":67.30386,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-16T16:52:56Z","commit_sha":"72d7741cf72b8fd965bf9e94fb3c6bb9b1986f0f","commit_message":"maps: share `sharedFunc_800CDAA8_0_s02` in 6 maps\n\n6 maps remain","measures":{"fuzzy_match_percent":42.26033,"total_code":2879592,"matched_code":1211716,"matched_code_percent":42.079433,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4401,"matched_functions_percent":67.30386,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-16T16:21:16Z","commit_sha":"11239026e4cc4e7eb355490188d10cc959703a9f","commit_message":"MAP0_S01: func_800D7714","measures":{"fuzzy_match_percent":41.772346,"total_code":2879592,"matched_code":1197664,"matched_code_percent":41.591446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4395,"matched_functions_percent":67.21211,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-15T15:59:34Z","commit_sha":"0f43b1fbb3f804c2c4a52a8fa0b87f19d2edefbf","commit_message":"maps: share `sharedFunc_800CDAA8_0_s02` in 10 maps\n\n~12 maps to go","measures":{"fuzzy_match_percent":41.765816,"total_code":2879592,"matched_code":1197476,"matched_code_percent":41.58492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4394,"matched_functions_percent":67.196815,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-15T13:19:21Z","commit_sha":"5192e69b6c75efae5618964213c59521b35b28b1","commit_message":"map1_s01: share `sharedFunc_800CDAA8_0_s02`","measures":{"fuzzy_match_percent":41.177124,"total_code":2879592,"matched_code":1180524,"matched_code_percent":40.996223,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4384,"matched_functions_percent":67.04389,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-15T09:17:37Z","commit_sha":"99329cb8f024fdc64c07eb04725ba6274468ffd1","commit_message":"bodyprog: small fixup","measures":{"fuzzy_match_percent":41.118362,"total_code":2879592,"matched_code":1178832,"matched_code_percent":40.937466,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4383,"matched_functions_percent":67.0286,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-15T08:57:26Z","commit_sha":"ca69409bde6359d250ce2493c09ece2db237515a","commit_message":"map7_s02: match 3 funcs","measures":{"fuzzy_match_percent":41.118362,"total_code":2879592,"matched_code":1178832,"matched_code_percent":40.937466,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4383,"matched_functions_percent":67.0286,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-15T05:38:18Z","commit_sha":"c0c9093ca8f5252f8d1bcb6a9af88721baccf1a8","commit_message":"map7_s02: match `func_800E0FF0`","measures":{"fuzzy_match_percent":41.071968,"total_code":2879592,"matched_code":1177496,"matched_code_percent":40.89107,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4380,"matched_functions_percent":66.98272,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-14T16:49:38Z","commit_sha":"86b59cb1dee8e1848ec979c1620dc42d3313e1ef","commit_message":"move sharedSymbol_800D3B0C_0_s01 to separate file","measures":{"fuzzy_match_percent":41.045715,"total_code":2879592,"matched_code":1176740,"matched_code_percent":40.864815,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4379,"matched_functions_percent":66.96743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-14T16:05:40Z","commit_sha":"56ea48adcaae730a92405b43d9cbc907738fe984","commit_message":"map2_s00: sharedSymbol_800D3B0C_0_s01","measures":{"fuzzy_match_percent":40.961258,"total_code":2879592,"matched_code":1174308,"matched_code_percent":40.78036,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4375,"matched_functions_percent":66.90626,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-14T15:59:01Z","commit_sha":"ca14f2ddff18dd872bfa86a391399126882089d3","commit_message":"s_SubCharPropertiesUnk0: correct field_E0 => field_E8","measures":{"fuzzy_match_percent":40.940144,"total_code":2879592,"matched_code":1173700,"matched_code_percent":40.759247,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4374,"matched_functions_percent":66.89096,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-14T13:58:09Z","commit_sha":"a46113db10a6ae29ecc08a3c7b9760b05f8c947d","commit_message":"move sharedFunc_800D7B14_0_s01 decl from map0_s01.h to shared.h","measures":{"fuzzy_match_percent":40.924866,"total_code":2879592,"matched_code":1173260,"matched_code_percent":40.74397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4373,"matched_functions_percent":66.87566,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-14T00:54:54Z","commit_sha":"5d5a69ee2c8345ed905e0fb3f2810a76e76933b6","commit_message":"map6_s00: share `sharedFunc_800D3928_0_s01`","measures":{"fuzzy_match_percent":40.924866,"total_code":2879592,"matched_code":1173260,"matched_code_percent":40.74397,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4373,"matched_functions_percent":66.87566,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T22:48:56Z","commit_sha":"abf48accb776b7d25d51ba8b2857d349b0734630","commit_message":"sharedFunc_800D7AB0_0_s01, make func_800D7B14 a sharedFunc","measures":{"fuzzy_match_percent":40.91778,"total_code":2879592,"matched_code":1173056,"matched_code_percent":40.73688,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4372,"matched_functions_percent":66.860374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T21:45:55Z","commit_sha":"23c2b50e68a4d9b41a563e91020391bc584c8a2b","commit_message":"add func_8005C1CC, func_8005BF58 (#448)","measures":{"fuzzy_match_percent":40.896942,"total_code":2879592,"matched_code":1172456,"matched_code_percent":40.716045,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4366,"matched_functions_percent":66.768616,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T19:10:51Z","commit_sha":"7dbadc96bd5252cc9fdfee0843acd51b1514969d","commit_message":"Update README.md","measures":{"fuzzy_match_percent":40.851383,"total_code":2879592,"matched_code":1171144,"matched_code_percent":40.670483,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4364,"matched_functions_percent":66.73804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T15:45:08Z","commit_sha":"590fb87e017bc75794861b567deaa38c1230f253","commit_message":"MAP0_S01: func_800D5B10","measures":{"fuzzy_match_percent":40.851383,"total_code":2879592,"matched_code":1171144,"matched_code_percent":40.670483,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4364,"matched_functions_percent":66.73804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T15:19:55Z","commit_sha":"4e54eccaf878f1fba867a066c37aade43889e267","commit_message":"MAP0_S01: func_800D5C90","measures":{"fuzzy_match_percent":40.838047,"total_code":2879592,"matched_code":1170760,"matched_code_percent":40.657146,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4363,"matched_functions_percent":66.72274,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T09:02:16Z","commit_sha":"b0e73b9768286542bff6a3135645d81b5c191e9b","commit_message":"MAP0_S01: match func_800D598C","measures":{"fuzzy_match_percent":40.829712,"total_code":2879592,"matched_code":1170520,"matched_code_percent":40.648815,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4362,"matched_functions_percent":66.70745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T08:25:20Z","commit_sha":"6ea423f9f66e951e1e98c63092a22f7cce1876cd","commit_message":"MAP0_S01: match func_800D3AC0","measures":{"fuzzy_match_percent":40.81624,"total_code":2879592,"matched_code":1170132,"matched_code_percent":40.63534,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4361,"matched_functions_percent":66.692154,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T08:18:41Z","commit_sha":"f12ff6acf1a64416c0bf078f1f4d7ab2018c562f","commit_message":"MAP0_S01: func_800D3A3C","measures":{"fuzzy_match_percent":40.8136,"total_code":2879592,"matched_code":1170056,"matched_code_percent":40.6327,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4360,"matched_functions_percent":66.676865,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-13T01:16:42Z","commit_sha":"dcdd2fabbb42c862c96ac872d4208738c4614e71","commit_message":"map7: match 2 funcs","measures":{"fuzzy_match_percent":40.809013,"total_code":2879592,"matched_code":1169924,"matched_code_percent":40.628117,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4359,"matched_functions_percent":66.66157,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T21:48:52Z","commit_sha":"0c3490d2e1b19b01d3a39aa823ed9af7675d8c2f","commit_message":"s_SubCharPropertiesUnk0 field_E0 bitfield","measures":{"fuzzy_match_percent":40.767483,"total_code":2879592,"matched_code":1168728,"matched_code_percent":40.586582,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4357,"matched_functions_percent":66.63098,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T21:37:13Z","commit_sha":"a3070b2c138595aa501b896f3cf6af7c431d1028","commit_message":"MAP0_S01: match func_800D4894","measures":{"fuzzy_match_percent":40.767483,"total_code":2879592,"matched_code":1168728,"matched_code_percent":40.586582,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4357,"matched_functions_percent":66.63098,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T21:28:39Z","commit_sha":"e1105cf0bb7cde0d431249c4b8487502fa30f6af","commit_message":"MAP0_S01: match func_800D5D80","measures":{"fuzzy_match_percent":40.757618,"total_code":2879592,"matched_code":1168444,"matched_code_percent":40.57672,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4356,"matched_functions_percent":66.61569,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T21:04:08Z","commit_sha":"1b8a4a39120c116ae494b4599646d2465634d5de","commit_message":"maps: match 83 funcs","measures":{"fuzzy_match_percent":40.75248,"total_code":2879592,"matched_code":1168296,"matched_code_percent":40.571583,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4355,"matched_functions_percent":66.6004,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T14:57:58Z","commit_sha":"ca9a719988130d42cde144222223b24e18634b11","commit_message":"map6_s05: match 3 funcs, share 1 func\n\nadded fix to autodecompile.py to clear build folder between attempts\nshould let it pick up more successful decompiles, need to rerun on maps\nagain","measures":{"fuzzy_match_percent":40.484524,"total_code":2879592,"matched_code":1160580,"matched_code_percent":40.303627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4273,"matched_functions_percent":65.34638,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T13:37:45Z","commit_sha":"66981c805eed348724f07064c1fca7f5b1bb110c","commit_message":"map4_s06: share 1 func, match 1 func","measures":{"fuzzy_match_percent":40.456604,"total_code":2879592,"matched_code":1159776,"matched_code_percent":40.275703,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4269,"matched_functions_percent":65.28521,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T12:37:38Z","commit_sha":"bce45a64f45e2b561b4f0e675a7bda9bfe805dbf","commit_message":"map2_s03: share 1 func, match 1 func, completes map","measures":{"fuzzy_match_percent":40.435905,"total_code":2879592,"matched_code":1159180,"matched_code_percent":40.25501,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4267,"matched_functions_percent":65.25463,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T11:56:13Z","commit_sha":"1a9506894a19bbbc3acba4e30952d6754f48aa5b","commit_message":"Merge pull request #447 from belek666/bodyprog\n\nadd func_8005D50C, func_80055840, func_800559A8","measures":{"fuzzy_match_percent":40.414238,"total_code":2879592,"matched_code":1158556,"matched_code_percent":40.233337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4265,"matched_functions_percent":65.22404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-12T00:42:43Z","commit_sha":"39b155182795c25b9e519ccf15cb3ba3320571c1","commit_message":"Progress tracker fix and update\n\nI missed that instead of tracking the option screen, the option screen sub-unit was tracking the credits screen files and the individual credit screen tracker was missing and marked as completed a map overlay","measures":{"fuzzy_match_percent":40.3659,"total_code":2879592,"matched_code":1157164,"matched_code_percent":40.184998,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4262,"matched_functions_percent":65.17816,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T21:04:53Z","commit_sha":"6e3a77e8d0272bb7f9a5a1f608ff4edd296acae5","commit_message":"map6_s04: share `sharedFunc_800CDAA8_0_s02`","measures":{"fuzzy_match_percent":40.3659,"total_code":2879592,"matched_code":1157164,"matched_code_percent":40.184998,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4262,"matched_functions_percent":65.17816,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T18:57:02Z","commit_sha":"17cd2ba74e54d787c64bb337991228e326fb3093","commit_message":"maps: share `sharedFunc_800CDAA8_0_s02` in 3 maps\n\n24 to go","measures":{"fuzzy_match_percent":40.215458,"total_code":2879592,"matched_code":1152832,"matched_code_percent":40.03456,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4261,"matched_functions_percent":65.162865,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T17:02:37Z","commit_sha":"8de66540ae1663ebc72d8ffd7eaa3e2add3aeecb","commit_message":"maps: share `sharedFunc_800CDAA8_0_s02` in 2 maps\n\nonly 27 more to go..","measures":{"fuzzy_match_percent":39.759422,"total_code":2879592,"matched_code":1139700,"matched_code_percent":39.578526,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4258,"matched_functions_percent":65.11699,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T15:59:20Z","commit_sha":"e245f32b0f8629a05c6cb7f60eb3a5f24b9f9f02","commit_message":"maps: share `sharedFunc_800CDAA8_0_s02` in 2 maps\n\na lot more to go ;_;","measures":{"fuzzy_match_percent":39.66691,"total_code":2879592,"matched_code":1137036,"matched_code_percent":39.48601,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4256,"matched_functions_percent":65.0864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T13:13:03Z","commit_sha":"cd013795922790fd987fa8bc3ac1708441092ce7","commit_message":"maps: finish sharing `sharedFunc_800D1C38_0_s00`\n\nTODO: sharedFunc_800CDAA8_0_s02 can probably be shared in more maps","measures":{"fuzzy_match_percent":39.448685,"total_code":2879592,"matched_code":1130752,"matched_code_percent":39.267784,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4254,"matched_functions_percent":65.05582,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T12:06:09Z","commit_sha":"c24f6f392e14eb4dbeac7fb0f0975f91a6539cb4","commit_message":"maps: share `sharedFunc_800D1C38_0_s00`, completes `map1_s04`\n\nand 1 match in map4_s00","measures":{"fuzzy_match_percent":38.795395,"total_code":2879592,"matched_code":1111940,"matched_code_percent":38.6145,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4237,"matched_functions_percent":64.79584,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T09:42:55Z","commit_sha":"222a1cb526007f9925557e7706982f23f4e70d51","commit_message":"map1_s04: match 2 funcs","measures":{"fuzzy_match_percent":37.897076,"total_code":2879592,"matched_code":1086072,"matched_code_percent":37.71618,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4212,"matched_functions_percent":64.41352,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T08:23:20Z","commit_sha":"6b6618f670bf85ca23a5d47a0be883eaad7904cd","commit_message":"maps: share 2 funcs","measures":{"fuzzy_match_percent":37.84929,"total_code":2879592,"matched_code":1084696,"matched_code_percent":37.668392,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4210,"matched_functions_percent":64.382935,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-11T06:58:35Z","commit_sha":"ac93c19512838f56d941aac66cbc550e024955cc","commit_message":"maps: match 22 funcs\n\nThere's a weird `g_Screen_FadeStatus = 12` that the `ScreenFade_Start`\nmacro didn't seem to fit, not sure how to decode that\n\nmap1_s04 has some odd sound-test looking func that plays sounds if\nR1/R2/R3 are pressed, this is one of the unknown/unused maps, wonder if\nthere's some debug room there","measures":{"fuzzy_match_percent":37.824287,"total_code":2879592,"matched_code":1083976,"matched_code_percent":37.643387,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4208,"matched_functions_percent":64.35235,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T21:22:21Z","commit_sha":"f334e8307d43891d6a147ff4c6be9373d2ab3a98","commit_message":"MAP0_S01: match func_800D5E14, match func_800D49B0 (#446)\n\n* MAP0_S00: cleanup header\n\n* MAP0_S01: match func_800D5E14\n\n* MAP0_S01: match func_800D49B0","measures":{"fuzzy_match_percent":37.75789,"total_code":2879592,"matched_code":1082064,"matched_code_percent":37.576992,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4186,"matched_functions_percent":64.01591,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T18:35:11Z","commit_sha":"8a391677944576ab8016720bec0d6703cea70f25","commit_message":"MAP0_S02: Map_RoomIdxGet (#445)","measures":{"fuzzy_match_percent":37.747192,"total_code":2879592,"matched_code":1081756,"matched_code_percent":37.566296,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4184,"matched_functions_percent":63.985317,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T16:33:21Z","commit_sha":"5841a1b9a21b755e2525d8af73673a6e01680a1f","commit_message":"add func_8005E650, func_8005F6B0 (#444)\n\nCo-authored-by: Mc-muffin <8714476+Mc-muffin@users.noreply.github.com>\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":37.741913,"total_code":2879592,"matched_code":1081604,"matched_code_percent":37.561016,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4183,"matched_functions_percent":63.970024,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T16:07:34Z","commit_sha":"15a74d984d1adbb98f32e4d1faf392955707ca56","commit_message":"Adding individual ovl tracking #2","measures":{"fuzzy_match_percent":37.650234,"total_code":2879592,"matched_code":1078964,"matched_code_percent":37.469337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4181,"matched_functions_percent":63.93944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T15:10:59Z","commit_sha":"e7244fa8d96d8a68fbe16ae6a982a27dd3768e9b","commit_message":"Adding individual ovl tracking #1\n\nDecomp.dev added a feature I requested of \"sub-units\" which allows to make to track individual parts of codes without cluttering the main unit list, thus allowing us to track individual overlays without cluttering main unit section with the 20+ overlays the game uses.\n\nThis will take a few commits as I have to implement the feature to the tracker and then figure out how to add the badges for each individual overlay.","measures":{"fuzzy_match_percent":37.650234,"total_code":2879592,"matched_code":1078964,"matched_code_percent":37.469337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4181,"matched_functions_percent":63.93944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T14:12:40Z","commit_sha":"bcc61c472a5fccb9f7071a6dde309d12b4980203","commit_message":"match sharedFunc_800D63A4_0_s01, make related 2 functions shared. (#443)\n\n* match sharedFunc_800D63A4_0_s01\n\n* shared data\n\n* sym format\n\n* make shared func\n\n* use sharedFunc_800D63A4_0_s01 in all maps\n\n* another shared func\n\n* cleanup","measures":{"fuzzy_match_percent":37.650234,"total_code":2879592,"matched_code":1078964,"matched_code_percent":37.469337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4181,"matched_functions_percent":63.93944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T09:30:04Z","commit_sha":"f1c805d09cd201976a0c651d47ccafc8ac55926c","commit_message":"map7: match 31 funcs","measures":{"fuzzy_match_percent":37.524384,"total_code":2879592,"matched_code":1075340,"matched_code_percent":37.343483,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4175,"matched_functions_percent":63.847687,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T08:20:44Z","commit_sha":"52a267ecba823072cbc6ffe6ae8f044da7b501ae","commit_message":"decompile.py: force make to only parse config for map being built\n\nnice speed boost","measures":{"fuzzy_match_percent":37.452427,"total_code":2879592,"matched_code":1073268,"matched_code_percent":37.27153,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4144,"matched_functions_percent":63.373608,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T07:26:41Z","commit_sha":"6127f92ccd7d9f43dcb0487a6a65be7c179f3b4f","commit_message":"autodecompile.py: add `--stage` option, only call make once\nper attempt","measures":{"fuzzy_match_percent":37.452427,"total_code":2879592,"matched_code":1073268,"matched_code_percent":37.27153,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4144,"matched_functions_percent":63.373608,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T06:47:17Z","commit_sha":"c88e8a408ce868849c0162ea373cadcd74e352cf","commit_message":"maps: share `sharedFunc_800CECFC_3_s02`\n\nwas already matched but not shared somehow","measures":{"fuzzy_match_percent":37.452427,"total_code":2879592,"matched_code":1073268,"matched_code_percent":37.27153,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4144,"matched_functions_percent":63.373608,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T04:46:31Z","commit_sha":"a1ea69762ddcb0cd966cef6d17523bacf8d98dcd","commit_message":"tools: add autodecompile.py, remove `__asm__` lines in m2ctx\n\nautodecompile will try decompiling all nonmatchings using the given file\npath filters, and report back any that m2c was able to match by itself\n\nAlready quite a lot of matches in map funcs with it, as context improves\nfor them m2c would probably be able to handle more too","measures":{"fuzzy_match_percent":37.442425,"total_code":2879592,"matched_code":1072980,"matched_code_percent":37.261528,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4140,"matched_functions_percent":63.312435,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T02:51:45Z","commit_sha":"98318c375b91bf85d9ab3dc223ab8a7e34076f06","commit_message":"`SysWork_StateSetNext` fixup","measures":{"fuzzy_match_percent":37.442425,"total_code":2879592,"matched_code":1072980,"matched_code_percent":37.261528,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4140,"matched_functions_percent":63.312435,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T02:44:07Z","commit_sha":"9c7a09b6b14ae77ec8e13424e2a506f2c5e05d3b","commit_message":"`SysWork_NextStateStepSet` fixup","measures":{"fuzzy_match_percent":37.442425,"total_code":2879592,"matched_code":1072980,"matched_code_percent":37.261528,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4140,"matched_functions_percent":63.312435,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-10T01:15:29Z","commit_sha":"98fe5ae0ecb574286a4c0e155ca9c4603beeb31a","commit_message":"map7_s02: match 2 funcs, fixups","measures":{"fuzzy_match_percent":37.442425,"total_code":2879592,"matched_code":1072980,"matched_code_percent":37.261528,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4140,"matched_functions_percent":63.312435,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-09T22:25:43Z","commit_sha":"ad0af977b85a01b93cf6a7e7e2b8d76102ae2605","commit_message":"map7_s02: match 8 funcs","measures":{"fuzzy_match_percent":37.37714,"total_code":2879592,"matched_code":1071100,"matched_code_percent":37.196243,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4139,"matched_functions_percent":63.297142,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-09T21:59:34Z","commit_sha":"6d04ae3536a3ef1a3f62e6f9ee6399bae4bb422d","commit_message":"add func_8006342C, func_8005F55C (#441)\n\n* add func_8006342C, func_8005F55C\n\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>\n\n* fix\n\n---------\n\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":37.302963,"total_code":2879592,"matched_code":1068964,"matched_code_percent":37.122066,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4131,"matched_functions_percent":63.174797,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-09T21:57:33Z","commit_sha":"8644cc8754b4535962e22bd45a0aaceb74eb9388","commit_message":"map7_s02: match 3 funcs","measures":{"fuzzy_match_percent":37.23823,"total_code":2879592,"matched_code":1067100,"matched_code_percent":37.057335,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4129,"matched_functions_percent":63.144215,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-09T21:10:40Z","commit_sha":"261602db0ffeec07c8b38828d0efc35227eab973","commit_message":"README: show overall percent for screens/maps","measures":{"fuzzy_match_percent":37.068764,"total_code":2879592,"matched_code":1062220,"matched_code_percent":36.887863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4126,"matched_functions_percent":63.098335,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-09T20:58:49Z","commit_sha":"fb514b768d7ea27300d9f450ce05c358fe27742b","commit_message":"map0_s00: fixups","measures":{"fuzzy_match_percent":37.068764,"total_code":2879592,"matched_code":1062220,"matched_code_percent":36.887863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4126,"matched_functions_percent":63.098335,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-09T20:54:12Z","commit_sha":"283f80c51ac2ef3b1a1db3768a96f5219215a7b6","commit_message":"map7_s01: match 7 funcs","measures":{"fuzzy_match_percent":37.068764,"total_code":2879592,"matched_code":1062220,"matched_code_percent":36.887863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4126,"matched_functions_percent":63.098335,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-09T17:59:26Z","commit_sha":"6a288b741d0623c37fab65711e9e15762c614bd2","commit_message":"add func_80063A50, func_80064334, func_8005E89C (#440)\n\n* add func_80063A50, func_80064334, func_8005E89C\n\n* format","measures":{"fuzzy_match_percent":36.97972,"total_code":2879592,"matched_code":1059656,"matched_code_percent":36.798824,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4119,"matched_functions_percent":62.991287,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-08T23:01:34Z","commit_sha":"32038c6363dca744e14603ff806dd34d19b1d2ae","commit_message":"map7_s01: match `func_800D94DC`\n\nChanged `Game_HyperBlasterBeamColorGet` to return `s32` otherwise it caused\nmismatch when item_screens.h was included.","measures":{"fuzzy_match_percent":36.68232,"total_code":2879592,"matched_code":1051092,"matched_code_percent":36.501423,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4116,"matched_functions_percent":62.9454,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-08T21:13:01Z","commit_sha":"50d480a3b4ee32651b3e42d09771fe71bf04eb5e","commit_message":"map7_s01: match 11 funcs\n\nremoved old comment about controller buttons, struct has to use u16\nfor them for code to match","measures":{"fuzzy_match_percent":36.637867,"total_code":2879592,"matched_code":1049812,"matched_code_percent":36.45697,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4115,"matched_functions_percent":62.930115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-08T19:25:21Z","commit_sha":"56edf14fb4d305f6ad98e19e23922c85eb352b42","commit_message":"map7_s01: match 5 funcs","measures":{"fuzzy_match_percent":36.5116,"total_code":2879592,"matched_code":1046176,"matched_code_percent":36.330704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4104,"matched_functions_percent":62.76189,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-08T16:06:23Z","commit_sha":"8ae056492566264041ebf6e982ad5a2b71cf35dc","commit_message":"map7_s01: match `func_800D725C`, minor fixups","measures":{"fuzzy_match_percent":36.397972,"total_code":2879592,"matched_code":1042904,"matched_code_percent":36.217075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4099,"matched_functions_percent":62.685425,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-07T06:30:12Z","commit_sha":"5f108290903df7e45d4587d1e7e2e8d53fef0e1a","commit_message":"maps: fixups, merge `mapMarkingFlags_1D4`","measures":{"fuzzy_match_percent":36.326714,"total_code":2879592,"matched_code":1040852,"matched_code_percent":36.145817,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4098,"matched_functions_percent":62.670135,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-07T06:15:43Z","commit_sha":"718ea491156efc0ebffd73933709ff797274cc19","commit_message":"maps: match `Event_ItemTake`/`func_80087360` callers","measures":{"fuzzy_match_percent":36.326714,"total_code":2879592,"matched_code":1040852,"matched_code_percent":36.145817,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4098,"matched_functions_percent":62.670135,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-07T03:30:35Z","commit_sha":"0d555a2608711c62031a3690690a0ec29186a0ef","commit_message":"map7_s01: fixups","measures":{"fuzzy_match_percent":36.19961,"total_code":2879592,"matched_code":1037192,"matched_code_percent":36.018715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4031,"matched_functions_percent":61.645515,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-07T03:27:43Z","commit_sha":"a0f557d11de22879bf60062004ebee638a05948d","commit_message":"map7_s01: add small func matches, share 2 funcs","measures":{"fuzzy_match_percent":36.197113,"total_code":2879592,"matched_code":1037120,"matched_code_percent":36.016212,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4030,"matched_functions_percent":61.63022,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-07T01:07:23Z","commit_sha":"c6208bfc23efe5b14dff62c52946d46478c0f1a6","commit_message":"maps: match 1 func in 6 maps","measures":{"fuzzy_match_percent":36.14738,"total_code":2879592,"matched_code":1035688,"matched_code_percent":35.966484,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":4003,"matched_functions_percent":61.217316,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-07T00:21:21Z","commit_sha":"47ecaf9a0fa61bf0ed32b6e169f0db638eb052d6","commit_message":"maps: match 1 func in 6 maps\n\nSomething interesting, changing the `>> 1` to `/ 2` in sharedFunc_800D0828_3_s03 added 8 bytes of stack, letting us remove the `s32 unused[2]`\nGuess that might be useful as a tell, if other funcs have similar `unused[2]`","measures":{"fuzzy_match_percent":36.124046,"total_code":2879592,"matched_code":1035016,"matched_code_percent":35.943146,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3997,"matched_functions_percent":61.125553,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-06T17:36:20Z","commit_sha":"4837714b138937b78ded8ac2ee6d45484600c350","commit_message":"Add `e_SysFlags`","measures":{"fuzzy_match_percent":36.055702,"total_code":2879592,"matched_code":1033048,"matched_code_percent":35.874805,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3991,"matched_functions_percent":61.0338,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-06T15:22:51Z","commit_sha":"d0758e39205bc5bd1d10c37f786a22eb31690018","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":36.055702,"total_code":2879592,"matched_code":1033048,"matched_code_percent":35.874805,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3991,"matched_functions_percent":61.0338,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-06T07:57:01Z","commit_sha":"c4672a8a1076d077b89e0d14c53d3465e7b68f1e","commit_message":"maps: match/share 4 funcs in 6 maps, add `FP_SQUARE_PRECISE`\n\nAlso had to add (s32) cast to `FP_MULTIPLY_PRECISE`, otherwise\n`sharedFunc_800CD7F8_3_s03` treated result as unsigned and had mismatch,\nweird","measures":{"fuzzy_match_percent":36.055702,"total_code":2879592,"matched_code":1033048,"matched_code_percent":35.874805,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3991,"matched_functions_percent":61.0338,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-04T22:09:03Z","commit_sha":"aab9d6ff6959c778dfebbf8d5aeda6363b9d33ec","commit_message":"General maintenance (#429)\n\n* Formatting fixups\n\n* Formatting\n\n* Formatting\n\n* Demagic flags\n\n* Types, demagicking\n\n* Update weapon ID stuff\n\n* Sensible weapon attack packing progress\n\n* Add `EquippedWeaponId_Unk31`\n\n* Formatting, demagicking\n\n* `D_800C3950` -> `g_Player_ActiveWeaponAttack`\n\n* Name things, demagicking\n\n* Update map0_s01.c\n\n* Tidying pass\n\n* Tidying pass\n\n* Param types, demagic SFX\n\n* Types, add `e_DmsIntervalState`, `Dms_IntervalStatusGet` -> `Dms_IntervalStateGet`\n\n* Name flex angle vars, types\n\n* Deobfuscation\n\n* Deobfuscation, remove random spaces\n\n* Deobfuscation\n\n* Demagic locker dead body anims\n\n* Update game.h\n\n* Update game.h\n\n* Comments\n\n* `Chara_TakeDamage` -> `Chara_DamageTake`\n\n* Deobfuscation","measures":{"fuzzy_match_percent":35.929573,"total_code":2879592,"matched_code":1029416,"matched_code_percent":35.748676,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3969,"matched_functions_percent":60.697353,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T12:05:27Z","commit_sha":"a478de2814e1eee4fd3df85a61506ffa04f5ee63","commit_message":"MAP0_S01: match func_800D46C4 (#439)","measures":{"fuzzy_match_percent":35.929573,"total_code":2879592,"matched_code":1029416,"matched_code_percent":35.748676,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3969,"matched_functions_percent":60.697353,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T10:37:16Z","commit_sha":"23cf6335454a49136c07f60a92a94c00186d0f90","commit_message":"sharedFunc_800D3928_0_s01 (#438)\n\n* sharedFunc_800D3928_0_s01\n\n* make shared data\n\n* shared data for other maps\n\n* move to header, make it bit nicer\n\n* move func to shared\n\n* sym format","measures":{"fuzzy_match_percent":35.91346,"total_code":2879592,"matched_code":1028952,"matched_code_percent":35.732563,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3968,"matched_functions_percent":60.682064,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T08:55:08Z","commit_sha":"7353f0eef35783970890fca49cd317825fcf110a","commit_message":"MAP0_S01: match func_800D45BC (#437)","measures":{"fuzzy_match_percent":35.878036,"total_code":2879592,"matched_code":1027932,"matched_code_percent":35.69714,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3963,"matched_functions_percent":60.6056,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T08:17:15Z","commit_sha":"4026e96b88e994772b0972394c08c2c134fc3aa6","commit_message":"MAP0_s01: match func_800D39F4 (#436)","measures":{"fuzzy_match_percent":35.86887,"total_code":2879592,"matched_code":1027668,"matched_code_percent":35.687973,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3962,"matched_functions_percent":60.5903,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T08:15:53Z","commit_sha":"a44059fdaa2e92a2afce99de43844d6161f4ef36","commit_message":"match func_800652F4 func_80064FC0 (#434)","measures":{"fuzzy_match_percent":35.86637,"total_code":2879592,"matched_code":1027596,"matched_code_percent":35.68547,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3961,"matched_functions_percent":60.575016,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T08:06:52Z","commit_sha":"07313f729928d1a5358aaf09b7dcb7d1803061d5","commit_message":"maps: match/share `sharedFunc_800CFFD8_0_s01` in 43 maps\n\nphew","measures":{"fuzzy_match_percent":35.761215,"total_code":2879592,"matched_code":1024568,"matched_code_percent":35.58032,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3959,"matched_functions_percent":60.544426,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T04:56:55Z","commit_sha":"bcdcb3079910693e822a198a8f382e8f36488df9","commit_message":"maps: fixups\n\nmap0_s00 func_800D1C38 and map0_s01 func_800D16C4 funcs look very close\nboth are matched, maybe can be shared with other maps too, will look at it tomorrow","measures":{"fuzzy_match_percent":32.599102,"total_code":2879592,"matched_code":933512,"matched_code_percent":32.418205,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3917,"matched_functions_percent":59.902126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T04:13:30Z","commit_sha":"2b8761f5be61016e24b75a9ada84bea9028c1488","commit_message":"maps: share `func_800CD6BC` in 42 maps","measures":{"fuzzy_match_percent":32.599102,"total_code":2879592,"matched_code":933512,"matched_code_percent":32.418205,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3917,"matched_functions_percent":59.902126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T03:57:08Z","commit_sha":"237a3538d50acba08ce47db5af91cd045e9e7879","commit_message":"map0_s02: match `func_800CD6BC`","measures":{"fuzzy_match_percent":31.169594,"total_code":2879592,"matched_code":892348,"matched_code_percent":30.988697,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3876,"matched_functions_percent":59.27512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T02:12:16Z","commit_sha":"18f0450b5391d7e8ae762926e929573795dc8ef9","commit_message":"maps: match/share `sharedFunc_800CE934_0_s02`","measures":{"fuzzy_match_percent":31.134727,"total_code":2879592,"matched_code":891344,"matched_code_percent":30.95383,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3875,"matched_functions_percent":59.259827,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-02T01:10:22Z","commit_sha":"25e99d890eb6451eae04c08251937e3e8bb19929","commit_message":"readme: remove old map overlay TU splits\n\nThose were broken links after we removed the splits\r\n\r\nWe do have some map events still split up though, not sure if we'd need to add badges for those or if we can just ref the whole map instead?","measures":{"fuzzy_match_percent":30.976233,"total_code":2879592,"matched_code":886780,"matched_code_percent":30.795336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3868,"matched_functions_percent":59.152775,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T23:00:03Z","commit_sha":"4b8cbac49ec53412edc97891f91f8d3ae80b3533","commit_message":"maps: share 2 funcs in 6 maps","measures":{"fuzzy_match_percent":30.976233,"total_code":2879592,"matched_code":886780,"matched_code_percent":30.795336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3868,"matched_functions_percent":59.152775,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T22:18:33Z","commit_sha":"49385787bd318a61db84ad0a9ccd219061f5f704","commit_message":"maps: share 2 funcs in 6 maps","measures":{"fuzzy_match_percent":30.91164,"total_code":2879592,"matched_code":884920,"matched_code_percent":30.730742,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3858,"matched_functions_percent":58.999847,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T22:05:03Z","commit_sha":"3910fe126f5edc1bfbb816231bd75ad5010e0c73","commit_message":"MAP0_S01: match func_800D6C7C, func_800D6A60 (#433)\n\n* MAP0_S01: match func_800D6A60\n\n* MAP0_S01: match func_800D6C7C","measures":{"fuzzy_match_percent":30.712862,"total_code":2879592,"matched_code":879196,"matched_code_percent":30.531963,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3847,"matched_functions_percent":58.831627,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T18:59:24Z","commit_sha":"8c3f440b6bd0911a576d9b06a8c2ec79b765bf54","commit_message":"sharedFunc_800D4A80_0_s01 (#432)\n\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":30.673828,"total_code":2879592,"matched_code":878072,"matched_code_percent":30.492931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3845,"matched_functions_percent":58.801037,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T17:28:13Z","commit_sha":"95167443bfeeb542dccd94f0f7b514803e1b5fef","commit_message":"sharedFunc_800D633C_0_s01 and shared data (#431)\n\n* sharedFunc_800D633C_0_s01 preparation\n\n* sharedFunc_800D633C_0_s01 and shared data\n\n* sym format","measures":{"fuzzy_match_percent":30.651325,"total_code":2879592,"matched_code":877424,"matched_code_percent":30.470428,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3839,"matched_functions_percent":58.709282,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T17:06:22Z","commit_sha":"eac519224755b6b93764c8aca1d5a88e12669b04","commit_message":"ABS fixups","measures":{"fuzzy_match_percent":30.633268,"total_code":2879592,"matched_code":876904,"matched_code_percent":30.45237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3834,"matched_functions_percent":58.63282,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T16:34:26Z","commit_sha":"53d5701a67cc509e7ed3f26b3bfbddeb1ede9c28","commit_message":"map0_s00: simplify `func_800D0600`","measures":{"fuzzy_match_percent":30.633268,"total_code":2879592,"matched_code":876904,"matched_code_percent":30.45237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3834,"matched_functions_percent":58.63282,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-10-01T14:28:19Z","commit_sha":"4e9aec4c3cb979a8853c20819c1aed6cc75f98e7","commit_message":"MAP0_S01: match func_800D426C, match func_800D529C (#430)\n\n* add flag fields to subCharaUnk0\n\n* MAP0_S01: match func_800D529C\n\n* e_CharaUnk0Flags\n\n* MAP0_S01: match func_800D426C","measures":{"fuzzy_match_percent":30.633268,"total_code":2879592,"matched_code":876904,"matched_code_percent":30.45237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3834,"matched_functions_percent":58.63282,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-30T20:04:38Z","commit_sha":"7672b46754ee307ac76610f42956d6ee4f1440a0","commit_message":"MAP0_S01: match func_800D3EB8, func_800D5638 (#428)\n\n* MAP0_S01: match func_800D3EB8\n\n* MAP0_S01: match func_800D5638","measures":{"fuzzy_match_percent":30.60868,"total_code":2879592,"matched_code":876196,"matched_code_percent":30.427784,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3832,"matched_functions_percent":58.60223,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-30T14:36:43Z","commit_sha":"72dd63418ffa4f55e01bb5b430e260f63eb63c7f","commit_message":"Match sharedFunc_800D2B4C_0_s01 (#427)","measures":{"fuzzy_match_percent":30.584232,"total_code":2879592,"matched_code":875492,"matched_code_percent":30.403334,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3830,"matched_functions_percent":58.571648,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-30T09:06:11Z","commit_sha":"a0bd42572afba84e3f5d021ea554183fd80ba354","commit_message":"sharedFunc_800D8714_0_s01 (#426)\n\n* expand s_func_800D2E04\n\n* match sharedFunc_800D8714_0_s01","measures":{"fuzzy_match_percent":30.563396,"total_code":2879592,"matched_code":874892,"matched_code_percent":30.3825,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3824,"matched_functions_percent":58.47989,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-30T02:04:40Z","commit_sha":"4e3d7619450d7e3b37e2bcf290aacbe1b363a49b","commit_message":"maps: share 2 funcs in 6 maps","measures":{"fuzzy_match_percent":30.515057,"total_code":2879592,"matched_code":873500,"matched_code_percent":30.33416,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3818,"matched_functions_percent":58.38813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-30T01:41:34Z","commit_sha":"e1c7952567e10f1f2a536309200e343bebb1d474","commit_message":"maps: readd `sharedFunc_800CF9A8_0_s01` comments","measures":{"fuzzy_match_percent":30.428238,"total_code":2879592,"matched_code":871000,"matched_code_percent":30.24734,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3808,"matched_functions_percent":58.235203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-30T01:29:21Z","commit_sha":"38aa26832303042531687d7c36412bd8faaf0265","commit_message":"maps: finish `sharedFunc_800CF9A8_0_s01` share","measures":{"fuzzy_match_percent":30.428238,"total_code":2879592,"matched_code":871000,"matched_code_percent":30.24734,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3808,"matched_functions_percent":58.235203,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-30T01:02:04Z","commit_sha":"a7b95dd8e1388cdc9fecce0bbb9c3515258d2064","commit_message":"maps: finish sharing 2 funcs","measures":{"fuzzy_match_percent":30.355728,"total_code":2879592,"matched_code":868912,"matched_code_percent":30.174831,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3797,"matched_functions_percent":58.066982,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T23:50:48Z","commit_sha":"fb31b25419979331fc67157ad0d61ae4774eb0c8","commit_message":"map0_s01: small fixups","measures":{"fuzzy_match_percent":29.993872,"total_code":2879592,"matched_code":858492,"matched_code_percent":29.812973,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3777,"matched_functions_percent":57.761127,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T23:08:13Z","commit_sha":"bb5aa1cc53d422ced4f12bafafcd1e82b7c71da1","commit_message":"MAP0_S01: match func_800D57C8, match func_800D4420 (#425)\n\n* correct and explain s_sharedData_800E21D0_0_s01\n\n* MAP0_S01: match func_800D57C8\n\n* s_SubCharaPropertiesUnk0 - new union for new discovered fields\n\n* MAP0_S01: match func_800D4420\n\n* use subCharaUnk0 in func_800D569C, func_800D57C8\n\n* correct access to sharedData_800E21D0_0_s01\n\n* maps: share 3 funcs between 6 maps\n\n* configs: format\n\n---------\n\nCo-authored-by: emoose <abc@cock.li>","measures":{"fuzzy_match_percent":29.993872,"total_code":2879592,"matched_code":858492,"matched_code_percent":29.812973,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3777,"matched_functions_percent":57.761127,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T19:50:36Z","commit_sha":"080182c63d47f18dfc9b474c74295a83fb2a03f8","commit_message":"MAP0_S01: match func_800D569C (#424)\n\n* MAP0_S01: match func_800D569C\n\n* post review fixup","measures":{"fuzzy_match_percent":29.809679,"total_code":2879592,"matched_code":853188,"matched_code_percent":29.62878,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3760,"matched_functions_percent":57.50115,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T19:47:04Z","commit_sha":"8d5190e8b9e5903d9d72e2a2748e93638090bf3e","commit_message":"map4_s03: match `sharedFunc_800CB6B0_0_s00`","measures":{"fuzzy_match_percent":29.799261,"total_code":2879592,"matched_code":852888,"matched_code_percent":29.618362,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3759,"matched_functions_percent":57.485855,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T19:19:29Z","commit_sha":"e8a5647f3d17d3e19297cfa63f9eb5ce1a5511e2","commit_message":"maps: mostly finish `sharedFunc_800CB6B0_0_s00` share\n\nThis func sucks so much, got it matching across almost all maps, but\nmap4_s03 has an issue where it's treating `sharedData_800E5768_1_s02` as\nboth `s_func_800CB560` and `u16`\n\nIn the asm the two usages are at different addrs, but the shared code\nfor other maps currently uses the same symbol for both usages...\nGuessing it might be a mis-share and the usages need to be split in\nother maps too","measures":{"fuzzy_match_percent":29.76106,"total_code":2879592,"matched_code":851788,"matched_code_percent":29.580164,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3758,"matched_functions_percent":57.47056,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T16:45:37Z","commit_sha":"f96caa32e35614cc76805eb999823f2861580cc6","commit_message":"maps: share `sharedFunc_800CB6B0_0_s00` in most maps\n\nStill needs to be shared in a couple maps that have per-map changes\n(can search src/maps/ folder for `sharedFunc_800CB6B0_0_s00`, ones with INCLUDE_ASM need more work)\n\nsharedFunc_800CBC94_0_s00 is also only partly-shared in some maps, when I tried sharing it\nthat gave non-matching error, but maptool did detect it with difference=0, weird","measures":{"fuzzy_match_percent":29.219595,"total_code":2879592,"matched_code":836196,"matched_code_percent":29.038698,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3746,"matched_functions_percent":57.28705,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T15:18:14Z","commit_sha":"8e5273c2dd7b5f200f3a804781fa2e0ab3c70557","commit_message":"maps: rename sharedData/sharedFunc to earlier map\n\nprep for next sharedFunc","measures":{"fuzzy_match_percent":28.918163,"total_code":2879592,"matched_code":827516,"matched_code_percent":28.737265,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3738,"matched_functions_percent":57.164703,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-29T13:28:15Z","commit_sha":"e2e51648a1999c22a819d5f3bea68719947fcc19","commit_message":"General maintenance (#414)\n\n* Tidying pass\n\n* Docs, types\n\n* Tidying pass\n\n* Minor changes\n\n* Update `func_800DCA30`, docs, renames\n\n* Camera docs\n\n* Comment\n\n* Docs, simplification\n\n* Add constants\n\n* Docs, types\n\n* Demagicking\n\n* Names\n\n* Demagic `Vsync` args\n\n* Demagic more `VSync` args\n\n* Update sync mode enum\n\n* Minor changes\n\n* Docs\n\n* Name field and demagic its constant values in a table\n\n* Remove likely padding field\n\n* Add `e_CameraLookAtAnchor`\n\n* Demagic camera anchor constants\n\n* Name field\n\n* Rename field\n\n* Update bodyprog.h\n\n* Minor changes\n\n* Formatting\n\n* Rename field\n\n* TimeStep -> timestep\n\n* Demagicking\n\n* Add `e_BlendMode` and demagic relevant values\n\n* Fix formatting\n\n* Types, demagicking\n\n* Minor changes\n\n* Name params and local vars\n\n* Name fields, types\n\n* Types, names, demagicking\n\n* Docs\n\n* Formatting\n\n* Comments, types\n\n* Demagicking\n\n* Update `func_8005C814`\n\n* Air screamer anim info table\n\n* Tidying pass","measures":{"fuzzy_match_percent":28.918163,"total_code":2879592,"matched_code":827516,"matched_code_percent":28.737265,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3738,"matched_functions_percent":57.164703,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-28T19:12:08Z","commit_sha":"4d77d7e1ed4db13710d231c38aa61e4871e96c4f","commit_message":"match func_80055D78 func_80066184 func_80065B94 (#423)\n\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":28.918163,"total_code":2879592,"matched_code":827516,"matched_code_percent":28.737265,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3738,"matched_functions_percent":57.164703,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-28T18:38:57Z","commit_sha":"9b5af34208268d3734c336d98944e3d49a4590c3","commit_message":"sharedFunc_800D8888_0_s01 (#419)","measures":{"fuzzy_match_percent":28.748556,"total_code":2879592,"matched_code":822632,"matched_code_percent":28.567657,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3735,"matched_functions_percent":57.118828,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-28T14:08:13Z","commit_sha":"f646e282fb7ccc2fc515369ec22c4f0c2896ee84","commit_message":"fix s_func_800D2E04 and related functions (#422)","measures":{"fuzzy_match_percent":28.738554,"total_code":2879592,"matched_code":822344,"matched_code_percent":28.55766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3731,"matched_functions_percent":57.057655,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-28T11:34:44Z","commit_sha":"5b70a51ab4b936c73e82f49b49ac2d3d27cb30ef","commit_message":"MAP0_S01: match func_800D5E78 (#421)","measures":{"fuzzy_match_percent":28.738554,"total_code":2879592,"matched_code":822344,"matched_code_percent":28.55766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3731,"matched_functions_percent":57.057655,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-28T08:19:59Z","commit_sha":"c0489b156907d81b63e21f860f66dce372695c51","commit_message":"MAP0_S00: match func_800CC6E8 (#420)\n\n* func_800D012C: fix parameters\n\n* MAP0_S00: match func_800CC6E8\n\n---------------------------------------------------\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>\n\nCo-authored-by: emoose <emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":28.733831,"total_code":2879592,"matched_code":822208,"matched_code_percent":28.552935,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3730,"matched_functions_percent":57.04236,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-27T15:23:27Z","commit_sha":"5b08288b0d83510256973a9f6892aeeeeba23e19","commit_message":"MAP0_S00: match func_800D0394 (#418)\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: fgsfds <fgsfds@users.noreply.github.com>","measures":{"fuzzy_match_percent":28.715357,"total_code":2879592,"matched_code":821676,"matched_code_percent":28.53446,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3729,"matched_functions_percent":57.027065,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-27T08:54:00Z","commit_sha":"e933af2ba137cb8eeefe3b5a9ac89b27ace1646e","commit_message":"WorldGfx / LM / Chara cleanup (#417)\n\n* cleanup itemLm code\n\n* Name some buffers\n\n* func_8003D7D4 => WorldGfx_CharaLoad\n\n* func_8003D354 => WorldGfx_CharaLmBufferAdvance\n\n* func_8003D444 => WorldGfx_CharaModelPresent\n\n* func_8003D3BC => Chara_FsImageCalc\n\n* func_8003D160 => WorldGfx_HarryCharaLoad\n\n* func_8003D6A4 => WorldGfx_CharaFree\n\n* parameter names\n\n* func_8003D5B4 => WorldGfx_CharaLmBufferAssign\n\n* sym format","measures":{"fuzzy_match_percent":28.693827,"total_code":2879592,"matched_code":821056,"matched_code_percent":28.512928,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3728,"matched_functions_percent":57.011776,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-27T07:17:40Z","commit_sha":"5d43a8090d9e8638aacdbf50bc204e8afcb52171","commit_message":"Macros for screen fade. (#416)\n\nThe purpose of this PR is to make simple macros for the most common\nscreen fade operations used in the game. All of screen fade logic is\ncontrolled by two variables, one of which is a state machine + color bit\ncombined. Most of the time we just want to start a fade and check if\nit's still going on.","measures":{"fuzzy_match_percent":28.693827,"total_code":2879592,"matched_code":821056,"matched_code_percent":28.512928,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3728,"matched_functions_percent":57.011776,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-27T04:31:48Z","commit_sha":"80aec3e14ad3c3769bae920ade807e744423a2e2","commit_message":"bodyprog: match 2 funcs\n\nCo-authored-by: Sezzary <sezzary@outlook.com>","measures":{"fuzzy_match_percent":28.693827,"total_code":2879592,"matched_code":821056,"matched_code_percent":28.512928,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3728,"matched_functions_percent":57.011776,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-26T17:51:13Z","commit_sha":"c4a8d1a70241055de297645d04cce48d48acd3be","commit_message":"map0_s00: fixups","measures":{"fuzzy_match_percent":28.67674,"total_code":2879592,"matched_code":820564,"matched_code_percent":28.495842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3726,"matched_functions_percent":56.98119,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-26T17:44:25Z","commit_sha":"ba1f76c1d8151dbc9e52171fcfec582fdf3525a1","commit_message":"map0_s00: match `func_800D8310`","measures":{"fuzzy_match_percent":28.67674,"total_code":2879592,"matched_code":820564,"matched_code_percent":28.495842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3726,"matched_functions_percent":56.98119,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-26T11:38:22Z","commit_sha":"a1eafde5bd02bef13fb5da10720554f3879cc335","commit_message":"MAP0_S00: match func_800DCA30 (#415)","measures":{"fuzzy_match_percent":28.639235,"total_code":2879592,"matched_code":819484,"matched_code_percent":28.458336,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3725,"matched_functions_percent":56.9659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-26T00:58:24Z","commit_sha":"cedf88961407f9bfd399c1719572a9a8be3eb127","commit_message":"MAP0_S00: match func_800D1C38 (#413)","measures":{"fuzzy_match_percent":28.620205,"total_code":2879592,"matched_code":818936,"matched_code_percent":28.439308,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3724,"matched_functions_percent":56.950603,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-25T08:39:19Z","commit_sha":"8046c03d85bffc6a73cf9ec60c84fd365a614a56","commit_message":"match func_80068E0C, GameState_MapScreen_Update (#412)\n\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>","measures":{"fuzzy_match_percent":28.581171,"total_code":2879592,"matched_code":817812,"matched_code_percent":28.400272,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3723,"matched_functions_percent":56.93531,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-25T08:36:11Z","commit_sha":"1d9723dfcc75c478ee39b525e4717fbdd4207447","commit_message":"MAP0_S00: sharedFunc_800CF2A4_0_s01, sharedFunc_800CE59C_0_s01 (#411)","measures":{"fuzzy_match_percent":28.447958,"total_code":2879592,"matched_code":813976,"matched_code_percent":28.26706,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3721,"matched_functions_percent":56.904728,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-25T05:43:42Z","commit_sha":"5094f0ec93c3729ff37a9073f604e7d0c59dff4d","commit_message":"Fixed Point simplification (#408)\n\n* Fixed Point simplification\n\nRemade `FP_TO` and `FP_FLOAT_TO` literals to `Q*` equivalents.\nThere are no more `FP_FLOAT_TO` used in non formulas.\nRenamed `FP_FLOAT_TO` to `Q`\nRemoved `Math_Vector3f` as it was only used in two places. Other places use `Math_Vector3Set` directly.\nAdded `.0f` to floats where I found them.\nalligned `area_load_params.h`.\n\n* `Q` aka `FP_FLOAT_TO` -> `TO_FIXED`\n\n---------\n\nCo-authored-by: Sezz <sezzary@outlook.com>","measures":{"fuzzy_match_percent":28.420315,"total_code":2879592,"matched_code":813180,"matched_code_percent":28.239418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3720,"matched_functions_percent":56.88943,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-25T05:33:22Z","commit_sha":"382585f4719dd6f1d5d64870ddf648d01c215939","commit_message":"Name params, constants","measures":{"fuzzy_match_percent":28.420315,"total_code":2879592,"matched_code":813180,"matched_code_percent":28.239418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3720,"matched_functions_percent":56.88943,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-25T05:09:01Z","commit_sha":"fc312b497f077386da41efabc6d6c6c0158470a4","commit_message":"Fixups","measures":{"fuzzy_match_percent":28.420315,"total_code":2879592,"matched_code":813180,"matched_code_percent":28.239418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3720,"matched_functions_percent":56.88943,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-25T01:43:40Z","commit_sha":"393ad10119b7d1f84e9292c943008a632343d3b9","commit_message":"MAP0_S00: Match serveral functions (#410)\n\n* func_8008A0D4: fix argument type\n\n* MAP0_S00: mach func_800D802C\n\n* MAP0_S00: func_800D8124\n\n* MAP0_S00: match func_800D8748\n\n* MAP0_S00: match func_800CF7AC","measures":{"fuzzy_match_percent":28.420315,"total_code":2879592,"matched_code":813180,"matched_code_percent":28.239418,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3720,"matched_functions_percent":56.88943,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T19:21:52Z","commit_sha":"b213ab335db0dff14ace7c1701a0508dd28754f7","commit_message":"configs: add 2 func syms","measures":{"fuzzy_match_percent":28.367668,"total_code":2879592,"matched_code":811664,"matched_code_percent":28.186771,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3716,"matched_functions_percent":56.828262,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T17:16:18Z","commit_sha":"bca3178253a305bb901c675d3a7f8559660ac0e7","commit_message":"maps: match `sharedFunc_800D7BE8_0_s00`\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":28.353916,"total_code":2879592,"matched_code":811268,"matched_code_percent":28.173018,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3714,"matched_functions_percent":56.797676,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T14:52:46Z","commit_sha":"d2e2e55611081b9891c38e69474efa0d2d09be20","commit_message":"game.h: typo fixup","measures":{"fuzzy_match_percent":28.185143,"total_code":2879592,"matched_code":806408,"matched_code_percent":28.004244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3705,"matched_functions_percent":56.660038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T14:49:54Z","commit_sha":"b2677be4cf78b08c1c235ddd7e1b283089ac9f28","commit_message":"Rename `s_AreaLoadParams` / `s_SpawnInfo` to `s_MapPoint2d` (#274)\n\n* bodyprog: use e_PrimitiveType\n\n* Rename `s_AreaLoadParams`/`s_SpawnInfo` to s_MapPoint2d, update data\n\n* bodyprog: use `void*` for `primData` arg\n\n* s_MapPoint2d: add `data_4.raw` u32\n\nShould be able to use this in any s_MapPoint2d tables/initializers\ntemporarily, then once the actual data type is found (from s_EventParam\ntype field or other place) it could be replaced with the actual union\nstruct","measures":{"fuzzy_match_percent":28.185143,"total_code":2879592,"matched_code":806408,"matched_code_percent":28.004244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3705,"matched_functions_percent":56.660038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T13:12:55Z","commit_sha":"9fbfe9fa3731352600419e89d9bf8a19449821f9","commit_message":"Add `DEFAULT_MAP_MESSAGE_LENGTH` constant","measures":{"fuzzy_match_percent":28.185143,"total_code":2879592,"matched_code":806408,"matched_code_percent":28.004244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3705,"matched_functions_percent":56.660038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T10:47:06Z","commit_sha":"069b82532b59b8b68d6bce3ba8959dab8e0cc9d5","commit_message":"Comment","measures":{"fuzzy_match_percent":28.185143,"total_code":2879592,"matched_code":806408,"matched_code_percent":28.004244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3705,"matched_functions_percent":56.660038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T10:37:40Z","commit_sha":"3fd29e5694253292a1c5018e01158282246065f6","commit_message":"FP types","measures":{"fuzzy_match_percent":28.185143,"total_code":2879592,"matched_code":806408,"matched_code_percent":28.004244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3705,"matched_functions_percent":56.660038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-24T05:04:20Z","commit_sha":"d3ecc8762fb0f11f723176f3ca7a08ce82524b88","commit_message":"Fixups (#409)\n\n* Pass\n\n* Update bodyprog_8003AB28.c\n\n* Tidying pass, types\n\n* Add `s_FadeType`\n\n* Corrections\n\n* Comment","measures":{"fuzzy_match_percent":28.185143,"total_code":2879592,"matched_code":806408,"matched_code_percent":28.004244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3705,"matched_functions_percent":56.660038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T21:12:00Z","commit_sha":"79f8d37a02a5aaac1ad720f9ebffb717ca4b2cfc","commit_message":"MAP0_S00: match func_800DB26C (#407)\n\n* MAP0_S00: match func_800DB26C\n\n* clean savegame flags and floats\n\n* MAP0_S00: match func_800D94F8","measures":{"fuzzy_match_percent":28.185143,"total_code":2879592,"matched_code":806408,"matched_code_percent":28.004244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3705,"matched_functions_percent":56.660038,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T17:46:41Z","commit_sha":"55006085ef318b0ea4220c3041e0066a16426a7b","commit_message":"maps: code fixups","measures":{"fuzzy_match_percent":28.153889,"total_code":2879592,"matched_code":805508,"matched_code_percent":27.97299,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3703,"matched_functions_percent":56.629456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T17:04:43Z","commit_sha":"51d7257e552cbc4ab5a9f4c1357992e1659299ad","commit_message":"flags_fp_conv: only convert int->Q for C literals\n\nshould skip over ints that are part of a string (eg field name)\n`chara.field_48 = 4096` should give `chara.field_48 = Q12(1.0f)`\n\ncould add something to round the result automatically, since we know the\nprecision for each Q format, but need to check if that would work\nproperly","measures":{"fuzzy_match_percent":28.153889,"total_code":2879592,"matched_code":805508,"matched_code_percent":27.97299,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3703,"matched_functions_percent":56.629456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T15:56:13Z","commit_sha":"ea2f3aecc9acb30cc110e31ed0186080d726f3d5","commit_message":"MAP0_S00: func_800DB514 (#406)","measures":{"fuzzy_match_percent":28.153889,"total_code":2879592,"matched_code":805508,"matched_code_percent":27.97299,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3703,"matched_functions_percent":56.629456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T15:41:10Z","commit_sha":"6def678571214d89d9bc93c299ad580e514bed51","commit_message":"MAP0_S00: match func_800DD0CC (#405)","measures":{"fuzzy_match_percent":28.124023,"total_code":2879592,"matched_code":804648,"matched_code_percent":27.943125,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3702,"matched_functions_percent":56.61416,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T14:15:01Z","commit_sha":"4cd5f55c330f44436d00558a073e0d686e32f99f","commit_message":"Fixed point macro reduction (#400)\n\n* Remove `FP_TIME`\n\n* Remove `FP_METER_GEO`\n\n* Remove `FP_METER_TO_GEO`\n\n* Remove `FP_METER_FROM_GEO`\n\n* Remove `FP_METER`\n\n* Remove `FP_VOLUME`\n\n* Revise docs\n\n* Revise docs\n\n* Update fixed_point.h\n\n* Minor changes","measures":{"fuzzy_match_percent":28.106798,"total_code":2879592,"matched_code":804152,"matched_code_percent":27.9259,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3701,"matched_functions_percent":56.598866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T12:34:33Z","commit_sha":"df86beab9e2c137fd6206742c5d86c7a403891b3","commit_message":"flags_fp_conv: support `Get(x) && !Get(x)`","measures":{"fuzzy_match_percent":28.106798,"total_code":2879592,"matched_code":804152,"matched_code_percent":27.9259,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3701,"matched_functions_percent":56.598866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T12:19:17Z","commit_sha":"953010c05392ae4846df82a9473cb135a2617072","commit_message":"maps: EventFlags fixups, support set/clear/multiple bits in flags_fp_conv","measures":{"fuzzy_match_percent":28.106798,"total_code":2879592,"matched_code":804152,"matched_code_percent":27.9259,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3701,"matched_functions_percent":56.598866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T11:56:51Z","commit_sha":"da66893a96ea27a98f171e2ce36492a2d0ce8de5","commit_message":"Demagicking pass (#404)\n\n* Formatting, demagicking\n\n* Demagicking\n\n* Tidying pass, demagicking\n\n* Fix formatting\n\n* Format configs\n\n* Use floats, update FP converter script\n\n* Update flags_fp_conv.py\n\n* Use `break`s instead of `return`s\n\n---------\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":28.106798,"total_code":2879592,"matched_code":804152,"matched_code_percent":27.9259,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3701,"matched_functions_percent":56.598866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T11:28:59Z","commit_sha":"b9ceabb45056c25bd8ca0ff1e496ab6fd21bda6c","commit_message":"flags_fp_conv: allow specifying Q format in text to be converted","measures":{"fuzzy_match_percent":28.106798,"total_code":2879592,"matched_code":804152,"matched_code_percent":27.9259,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3701,"matched_functions_percent":56.598866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T10:59:28Z","commit_sha":"9d1f7d23762c5b4208e25419ef90f4ba938faba4","commit_message":"MAP0_S00: func_800DCF38, func_800DCDA8, func_800DAEFC (#403)\n\n* MAP0_S00: match func_800DAEFC\n\n* MAP0_S00: match func_800DCDA8\n\n* MAP0_S00: match func_800DCF38","measures":{"fuzzy_match_percent":28.106798,"total_code":2879592,"matched_code":804152,"matched_code_percent":27.9259,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3701,"matched_functions_percent":56.598866,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T10:40:04Z","commit_sha":"1a1ab052afd0664dfb3668936b4155d3cc7c5683","commit_message":"MAP0_S00: match func_800DA5A0 (#402)\n\n* MAP0_S00: match func_800DA5A0\n\n* cleanup\n\n* func_800869E4 => Map_MessageWithAudio\n\n* rename externs\n\n* sym format","measures":{"fuzzy_match_percent":28.048319,"total_code":2879592,"matched_code":802468,"matched_code_percent":27.867422,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3698,"matched_functions_percent":56.55299,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T08:09:17Z","commit_sha":"52cd55ad416252116f4468c491772b261ce78601","commit_message":"MAP0_S00 header cleanup  (#401)\n\n* func_800DC1E8 => Event_GreyChildrenSpawn\n\n* MAP0_S00: delete uneeded function defines\n\n* sym format","measures":{"fuzzy_match_percent":28.005812,"total_code":2879592,"matched_code":801244,"matched_code_percent":27.824915,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3697,"matched_functions_percent":56.5377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T07:50:09Z","commit_sha":"0cc54fcbd2f56cb529aa7b51a4597c99daad50ab","commit_message":"MAP0_S00:  func_800DBF08, func_800DC1E8 (#399)\n\n* MAP0_S00: match func_800DC1E8\n\n* MAP0_S00: match func_800DBF08\n\n* func_800DBF08 => Map_WorldObjectsUpdate\n\n* sym format","measures":{"fuzzy_match_percent":28.005812,"total_code":2879592,"matched_code":801244,"matched_code_percent":27.824915,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3697,"matched_functions_percent":56.5377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T07:28:05Z","commit_sha":"d50e6b618ebdbd2592b9b18c7253b0bdf067773a","commit_message":"MAP0_S00: Match several functions (#398)\n\n* MAP0_S00: match func_800DCC54\n\n* clean\n\n* MAP0_S00: match func_800DBE68\n\n* func_800DBE68 => Map_WorldObjectsInit\n\n* MAP0_S00: match func_800D9D98\n\n* clean\n\n* MAP0_S00: match func_800D9610\n\n* clean\n\n* MAP0_S00: match func_800DA028\n\n* MAP0_S00: match func_800DA254\n\n* MAP0_S00: match func_800DA454\n\n* MAP0_S00_func_800DAA68\n\n* MAP0_S00: match func_800DAB8C\n\n* MAP0_S00: match func_800DACB0\n\n* MAP0_S00: match func_800DADD4\n\n* fix","measures":{"fuzzy_match_percent":27.968445,"total_code":2879592,"matched_code":800168,"matched_code_percent":27.787548,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3695,"matched_functions_percent":56.50711,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T06:54:23Z","commit_sha":"e5d406ca46eebf92a162088bf556a553b78ae8fc","commit_message":"General maintenance (#387)\n\n* Tidying pass\n\n* Name speed zone type vars properly, demagic `/ 136`\n\n* Angle conversion\n\n* Deoptimise scaled distances\n\n* Remove hex values and temps\n\n* Add missing `map7_s01.h`\n\n* Name forgotten param\n\n* Deoptimise more scaled distances\n\n* `Math_DeltaTimeDistScale` -> `TIME_STEP_SCALE`\n\n* Minor changes\n\n* Name param, data tidying\n\n* Remove empty default cases\n\n* Update docs, name local var\n\n* `anmHeader` -> `andHdr`\n\n* Tidying pass\n\n* Name local var, remove commas\n\n* Add math macro to dedupe operations\n\n* Add `CHECK_FLAG` macro\n\n* Minor demagicking\n\n* Tidying pass 1\n\n* Tidying pass 2\n\n* Tidying pass 3\n\n* Change `useStoredPoint_4`'s type\n\n* Tidying pass 4\n\n* Fix search-and-replace error\n\n* Fixed-point math in camera\n\n* Demagicking, use appropriate macros\n\n* Deobfuscation\n\n* Deobfuscation\n\n* Rename funcs\n\n* Name vars\n\n* Add `e_CollisionType`, names\n\n* Name params\n\n* Convert speed zone ranges\n\n* Convert water zone ranges\n\n* Clarify Q formats and conversions, add docs\n\n* Minor changes\n\n* Update `sharedFunc_800D5FCC_0_s00`, demagicking, add `ANIM_TIME_RANGE_CHECK` macro\n\n* Clean up loop, fill out constants properly\n\n* Name `s_CollisionPoint`\n\n* Address `@hack` misuse\n\n* Tidying pass\n\n* Revert \"Address `@hack` misuse\"\n\nThis reverts commit 475154493ac676d3079104b1edd2981fe96522b6.\n\n* Minor changes\n\n* Comment\n\n* Remove padding fields, docs\n\n* Types\n\n* Tidying pass\n\n* Minor demagicking\n\n* Use `Math_Vector2MagCalc`\n\n* Update param type\n\n* Fix build","measures":{"fuzzy_match_percent":27.838427,"total_code":2879592,"matched_code":796424,"matched_code_percent":27.65753,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3685,"matched_functions_percent":56.354183,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-23T04:07:34Z","commit_sha":"15ab8623109b172b3702ea377db2950a27c45ffe","commit_message":"MAP0_S00: match func_800DC8D8 (#397)\n\n* MAP0_S00: match func_800DC8D8\n\n* clean","measures":{"fuzzy_match_percent":27.838427,"total_code":2879592,"matched_code":796424,"matched_code_percent":27.65753,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3685,"matched_functions_percent":56.354183,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-22T16:18:22Z","commit_sha":"d581837ab520a0597211bd229eea5a5d24fdc8ab","commit_message":"MAP0_S00: match func_800DC694 (#396)\n\n* MAP0_S00: match func_800DC694\n\n* cleanup","measures":{"fuzzy_match_percent":27.82648,"total_code":2879592,"matched_code":796080,"matched_code_percent":27.645582,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3684,"matched_functions_percent":56.33889,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-22T15:51:44Z","commit_sha":"73a76a316222d9434124c4262c2df4c2ee7f4b9a","commit_message":"MAP0_S00: match func_800DC33C (#395)\n\n* MAP0_S00: match func_800DC33C\n\n* small cleanup","measures":{"fuzzy_match_percent":27.80634,"total_code":2879592,"matched_code":795500,"matched_code_percent":27.625443,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3683,"matched_functions_percent":56.3236,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-22T15:42:12Z","commit_sha":"7b248e00632e7af1c6e0cc8638aac64a154b85ad","commit_message":"tools: add flags_fp_conv.py, repl-style tool to convert event flags/Q12\n\nCame in useful for large funcs that made use of lots of flags/Q12\nnumbers, figured others might find it useful too","measures":{"fuzzy_match_percent":27.776613,"total_code":2879592,"matched_code":794644,"matched_code_percent":27.595715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3682,"matched_functions_percent":56.308304,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-22T15:35:04Z","commit_sha":"4de15d821c2f1fcb3d28df033adcce0c30c93807","commit_message":"PLAYER_IN_MAP_CHUNK macro for Map_WorldObjectsUpdate (#394)","measures":{"fuzzy_match_percent":27.776613,"total_code":2879592,"matched_code":794644,"matched_code_percent":27.595715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3682,"matched_functions_percent":56.308304,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-22T05:36:50Z","commit_sha":"8b2ffd6fea3d150981e560c258916b0f7eb5cb32","commit_message":"maptool: add --partial to search for partial/incomplete shared funcs\n\nwelp, looks like there's a few here","measures":{"fuzzy_match_percent":27.776613,"total_code":2879592,"matched_code":794644,"matched_code_percent":27.595715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3682,"matched_functions_percent":56.308304,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-22T05:27:28Z","commit_sha":"9564d7a861aa94c91e58fefdd8c42eada0b2c282","commit_message":"maps: fix some incomplete shares","measures":{"fuzzy_match_percent":27.776613,"total_code":2879592,"matched_code":794644,"matched_code_percent":27.595715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3682,"matched_functions_percent":56.308304,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-22T04:45:41Z","commit_sha":"ab777db8c5000e660130d5a74c2c582bc14ea5e4","commit_message":"maps: match/share `sharedFunc_800D3B44_0_s00`\n\nA lot of the shared funcs this calls have differences between maps, will\nprobably be a pain to match those >.>","measures":{"fuzzy_match_percent":27.729383,"total_code":2879592,"matched_code":793284,"matched_code_percent":27.548487,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6539,"matched_functions":3679,"matched_functions_percent":56.26243,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-21T23:55:28Z","commit_sha":"35bb01df39dfca78aad252f3c8f23c8e59dd7948","commit_message":"maps: match/share `sharedFunc_800D5FCC_0_s00`\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>","measures":{"fuzzy_match_percent":27.433313,"total_code":2879592,"matched_code":784764,"matched_code_percent":27.252611,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3671,"matched_functions_percent":56.148674,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-21T02:20:07Z","commit_sha":"73dff5caf5269672ef6151d47a20c604cc04db36","commit_message":"WorldObject related code (#393)\n\n* remove s_func_800452EC\n\n* s_WorldGfx_2BEC_0_0 => s_ModelInfo\n\n* commonLm_1BE4\n\n* s_WorldObject\n\n* func_8003C92C => g_WorldGfx_ObjectAdd\n\n* func_800DD2EC => CutsceneObjects_Add\n\n* func_8003C8F8 => WorldObject_ModelNameSet\n\n* EventThing => WorldObject\n\n* &g_ModelsCommon => &g_CommonWorldObjects\n\n* g_DefaultEventPosition => VECTOR3 g_CutscenePosition\n\n* MapHeader func_40: Map_WorldObjectsUpdate\n\n* format sym\n\n* commonLm => itemLm (based on the file name FILE_BG_BG_ITEM_PLM)\n\n* s_WorldObjectWithPos => s_WorldObjectDesc\n\n* MapHeader func_3C: Map_WorldObjectsInit","measures":{"fuzzy_match_percent":27.112019,"total_code":2879592,"matched_code":775512,"matched_code_percent":26.931316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3662,"matched_functions_percent":56.011017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-20T21:19:31Z","commit_sha":"a9ba0df1a8fb9bdd1645ca0aa18f6f4c813544e4","commit_message":"g_WorldGfx (#392)\n\n* early bone stuff deobfuscation\n\n* func_80056C8C => Bone_ModelAssign\n\n* func_80044F6C => Bone_GetModelIndex\n\n* func_800451B0 => Skeleton_BoneModelAssign\n\n* func_80056558 => Lm_MaterialFsImageApply\n\n* func_80056464 => Lm_MaterialFileIdxApply\n\n* name some fields\n\n* func_80044FE0 => Skeleton_Init\n\n* func_8003C1AC => CharaModel_Free\n\n* skeletos=>charaModels\n\n* merge s_800BCE18_0 with s_800BCE18\n\n* ipdSamplePoint, useStoredPoint\n\n* g_WorldGfix\n\n* func_8003C368 => WorldGfx_StoreIpdSamplePoint\n\n* func_8003C3A0 => WorldGfx_ResetIpdSamplePoint","measures":{"fuzzy_match_percent":27.112019,"total_code":2879592,"matched_code":775512,"matched_code_percent":26.931316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3662,"matched_functions_percent":56.011017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-20T17:29:33Z","commit_sha":"15e7302450213b471b4663c8198285521c5f9dd8","commit_message":"Fix s_Bone, S_skeleton, s_800BCE18_0 layout (#391)","measures":{"fuzzy_match_percent":27.112019,"total_code":2879592,"matched_code":775512,"matched_code_percent":26.931316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3662,"matched_functions_percent":56.011017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-20T17:25:41Z","commit_sha":"6fa0c2b52259c9ba1ef0e2c9849aab572e4b59cf","commit_message":"Deobfuscation around bone code (#390)\n\n* func_8005A21C, func_80057344: fix argument type\n\n* add s_800BCE18_2BEC_0_0 to s_Bone\n\n* correct queueId_4 to queueIdx_4\n\n* s_800BCE18_0_CC.field_4 => queueIdx_4","measures":{"fuzzy_match_percent":27.112019,"total_code":2879592,"matched_code":775512,"matched_code_percent":26.931316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3662,"matched_functions_percent":56.011017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-20T00:47:45Z","commit_sha":"061a117721fc1d4ee57c49b5afb2d2dcd4413ed3","commit_message":"Finish adding `s_AnmHeader*` to `Ai_*_Update` func args","measures":{"fuzzy_match_percent":27.112019,"total_code":2879592,"matched_code":775512,"matched_code_percent":26.931316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3662,"matched_functions_percent":56.011017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-20T00:23:06Z","commit_sha":"a8fd3960e6ee001f97a1bfb299fdc6cc718aa320","commit_message":"small cleanup around s_Bone, held item models. (#389)\n\n* small cleanup around func_8003C110\n\n* cleanup around heldItem, s_Bone","measures":{"fuzzy_match_percent":27.112019,"total_code":2879592,"matched_code":775512,"matched_code_percent":26.931316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3662,"matched_functions_percent":56.011017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-19T21:32:02Z","commit_sha":"cc67f1e6f1299a36fed69aad7af652c3bc3d482d","commit_message":"MAP7_S01: Match func_800DEDA4 (#388)\n\n* use MapType flags\n\n* map7_s01: match func_800DEDA4\n\n* minor func_800DEDA4 cleanup","measures":{"fuzzy_match_percent":27.112019,"total_code":2879592,"matched_code":775512,"matched_code_percent":26.931316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3662,"matched_functions_percent":56.011017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-19T19:06:01Z","commit_sha":"d52a17186ddcca4546a73117f2a5b2df2e86ee3d","commit_message":"bodyprog: remove hack, add missing data syms/1 func sym\n\nThink there's a bunch of other data syms that aren't named in sym file\nyet, shouldn't affect % but would be nice to get matching up, might look\ninto making a .map parser to compare with sym\n`Material_TimFileNameGet` func was also missing sym, might give slight\nbump","measures":{"fuzzy_match_percent":27.097433,"total_code":2879592,"matched_code":775092,"matched_code_percent":26.91673,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3661,"matched_functions_percent":55.995716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-19T17:59:34Z","commit_sha":"59ace4faa85b0b9e8c0a4b54f15bbf34852bbcf2","commit_message":"Ipd code deobfuscation part deux (#386)\n\n* LmFilter rename\n\n* Ipd_MaterialCount => Ipd_HalfResMaterialCount\n\n* func_80043C7C => Ipd_MaterialsLoad\n\n* func_80056A88 => Model_MaterialFlagsApply\n\n* func_80056954 => Lm_MaterialFlagsApply\n\n* func_80041D48 => Ipd_TexturesInit\n\n* rename full/half res to page, map type flags, globalPlm => isExterior\n\n* fix compiler warning\n\n* sym file format\n\n* typo fix\n\n* map type flag usage\n\n* func_80041CEC => LmHeader_Init\n\n* func_80041CB4 => GlobalLm_Init\n\n* func_800420FC => Map_GlobalLmFree\n\n* func_80041E98 => Map_IpdCollisionDataInit\n\n* func_80041C24 => Map_Init\n\n* func_80041FF0 => Ipd_ActiveChunksClear0\n\n* func_8004201C => Ipd_TexturesInit0\n\n* func_8003C2EC => Ipd_ActiveChunksClear1","measures":{"fuzzy_match_percent":27.093822,"total_code":2879592,"matched_code":774988,"matched_code_percent":26.913118,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-19T11:29:15Z","commit_sha":"b4b00c6d66e703fcf88729b564dd0b6ca28ea9c2","commit_message":"More IPD code deobfuscation (#385)\n\n* func_800436D8 => Ipd_LoadStart\n\n* func_80056348 => Lm_MaterialCount\n\n* Ipd_FreeChunkFind => func_800435E4\n\n* func_80042E2C => Ipd_DistanceToEdge, func_80042DE8 => Ipd_DistanceToEdgeWithPadding\n\n* func_80043338 => Ipd_DistanceToEdgeCalc\n\n* ipd chunk outsideCount\n\n* format sym file\n\n* func_8005660C => Material_FsImageApply\n\n* func_80056774 => Lm_MaterialsLoadWithFilter\n\n* s_ActiveTextures\n\n* func_8005B46C => ActiveTextures_CountReset\n\n* func_8005B4BC => ActiveTextures_FindTexture\n\n* s_IpdTextures, lores / hires\n\n* sym format","measures":{"fuzzy_match_percent":27.093822,"total_code":2879592,"matched_code":774988,"matched_code_percent":26.913118,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-19T02:46:53Z","commit_sha":"5d624dc6e247f421c2e42cb718568c7a15d39215","commit_message":"Add missing func names to config","measures":{"fuzzy_match_percent":27.105629,"total_code":2879592,"matched_code":775328,"matched_code_percent":26.924927,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3661,"matched_functions_percent":55.995716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T23:15:19Z","commit_sha":"0134ce45bb09cf0ce823f441637eb8106b23bfbe","commit_message":"Name vars","measures":{"fuzzy_match_percent":27.080208,"total_code":2879592,"matched_code":774596,"matched_code_percent":26.899506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3657,"matched_functions_percent":55.934536,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T22:52:05Z","commit_sha":"f476127b04f98da5557f675902e57f1c5b8bb632","commit_message":"Name params","measures":{"fuzzy_match_percent":27.080208,"total_code":2879592,"matched_code":774596,"matched_code_percent":26.899506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3657,"matched_functions_percent":55.934536,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T20:50:20Z","commit_sha":"c6c60c6c2e7f3bb152d1bd746a72fa6b3d3525cb","commit_message":"Map code cleanup (#384)\n\n* s_GlobalLm\n\n* func_80043554 => Map_IpdIndexGet, func_80043578 => Map_IpdPresent\n\n* s_800C1020 => s_Map\n\n* fix compiler warnings\n\n* func_80042EBC cleanup\n\n* sym file format\n\n* restore _Stage in some names","measures":{"fuzzy_match_percent":27.075209,"total_code":2879592,"matched_code":774452,"matched_code_percent":26.894505,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3655,"matched_functions_percent":55.903946,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T15:09:30Z","commit_sha":"92cfc6b549f33306ee769b6517a1f08a1b458aa9","commit_message":"bodyprog: fixup charaId switch\n\nswitch condition was `- 1` because the switch cases began at 1/Chara_Harry\ninstead of 0, so guess compiler offsets condition to let case 1 act as\ncase 0","measures":{"fuzzy_match_percent":27.080208,"total_code":2879592,"matched_code":774596,"matched_code_percent":26.899506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3657,"matched_functions_percent":55.934536,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T14:34:45Z","commit_sha":"e24b141b90a54bcbf3a10ffab9a4eb69d329affa","commit_message":"General maintenance, generate many anim info tables (#377)\n\n* Tidying pass\n\n* Tidying pass\n\n* Tidying pass\n\n* Docs\n\n* Name some Harry anim info tables\n\n* Name all Harry anim info tables\n\n* Generate all Harry map anim info tables\n\n* Name and generate various NPC anim info tables\n\n* Tidying pass\n\n* Tabs to spaces\n\n* Minor deobfuscation\n\n* Update sym.bodyprog.txt\n\n* Update bodyprog.h\n\n* `PlayerAnim` -> `HarryAnim`\n\n* Generate `FLOATSTINGER_ANIM_INFOS`\n\n* Regenerate `ROPMER_ANIM_INFOS` and `STALKER_ANIM_INFOS`, demagic some anim indices\n\n* Name local var\n\n* Tidying pass\n\n* Name params\n\n* Minor demagicking\n\n* Formatting\n\n* Throw Stasiu a bone\n\n* Doc corrections\n\n* Fix docs\n\n* Demagicking\n\n* Minor collision deobfuscation\n\n* Header -> hdr, add `LM_VERSION`\n\n* Newline\n\n* Formatting, deobfuscation\n\n* `-1` -> `NO_VALUE`\n\n* Param name harmonisation\n\n* Types","measures":{"fuzzy_match_percent":27.080208,"total_code":2879592,"matched_code":774596,"matched_code_percent":26.899506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3657,"matched_functions_percent":55.934536,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T13:52:34Z","commit_sha":"3c4e165e279f45de02f44d304d4fe4c1a5a12d83","commit_message":"Cleanup around IPD (#383)\n\n* Active IPD\n\n* merge overlaping ipd related structs\n\n* s_800C117C => s_IpdChunk\n\n* func_80041D10 => Ipd_TableQueueIdxClear\n\n* ipdTable => ipdActive\n\n* ipd buf\n\n* ipdFileIdx, texFileIdx","measures":{"fuzzy_match_percent":27.080208,"total_code":2879592,"matched_code":774596,"matched_code_percent":26.899506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3657,"matched_functions_percent":55.934536,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T10:01:34Z","commit_sha":"76b68d0c0464a6d039a4c4cdee9c4a3ecb9a5fec","commit_message":"Code cleanup around models and textures (#382)\n\n* D_800C1020.field_588 => hasGlobalPlm\n\n* map0_s01: remove overlaping externs\n\n* D_800E2570 => g_ModelsCommon\n\n* material_8 refcount\n\n* s_Material_8 => s_Texture\n\n* name some Tex functions\n\n* func_8005B3BC => Mat_TimFileNameGet\n\n* Tex_Init1","measures":{"fuzzy_match_percent":27.090628,"total_code":2879592,"matched_code":774896,"matched_code_percent":26.909924,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3659,"matched_functions_percent":55.965126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-18T06:27:32Z","commit_sha":"679306aa6b0e3a27ab35048bba80e46e520c06b1","commit_message":"match func_80069DF0, func_80069BA8, func_80069860 (#381)\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":27.111185,"total_code":2879592,"matched_code":775488,"matched_code_percent":26.930481,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3663,"matched_functions_percent":56.02631,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T19:14:37Z","commit_sha":"7ef423674c6e3a72e19a8fe921c89dd6903ed726","commit_message":"bodyprog: misc fixups","measures":{"fuzzy_match_percent":27.065067,"total_code":2879592,"matched_code":774160,"matched_code_percent":26.884365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T17:57:50Z","commit_sha":"904882c02b0dd73058c718d49d6de11e8e4925e4","commit_message":"cmp_filename: make it work with char* (#380)","measures":{"fuzzy_match_percent":27.065067,"total_code":2879592,"matched_code":774160,"matched_code_percent":26.884365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T17:29:23Z","commit_sha":"a5d7d9c0c32d8929d077d896070d4b0e55801ddf","commit_message":"bodyprog: chara ID fixups","measures":{"fuzzy_match_percent":27.065067,"total_code":2879592,"matched_code":774160,"matched_code_percent":26.884365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T15:37:55Z","commit_sha":"b796f59163154e485280124e2df3ad69ce45d265","commit_message":"bodyprog: remove `s_SubCharacter` `u_E1`","measures":{"fuzzy_match_percent":27.065067,"total_code":2879592,"matched_code":774160,"matched_code_percent":26.884365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T15:23:28Z","commit_sha":"ae5b0ce8e2078072164d04c9960874215b1ddc1d","commit_message":"bodyprog: match `func_8006A1A4`, dedupe `s_func_8006DCE0_64` -> `s_SubCharacter`\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":27.065067,"total_code":2879592,"matched_code":774160,"matched_code_percent":26.884365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T15:22:42Z","commit_sha":"0f0a27de62f4c2928749165db89a95f1fb82c0f5","commit_message":"bodyprog: match `func_8006A1A4`, dedupe `s_func_8006DCE0_64` -> `s_SubCharacter`","measures":{"fuzzy_match_percent":27.065067,"total_code":2879592,"matched_code":774160,"matched_code_percent":26.884365,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3660,"matched_functions_percent":55.98042,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T14:54:37Z","commit_sha":"9e8299b105727cf82d74dad02963afe04e134251","commit_message":"dedupe `s_func_8006A940` -> `s_SubCharacter`","measures":{"fuzzy_match_percent":27.046732,"total_code":2879592,"matched_code":773632,"matched_code_percent":26.866028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3659,"matched_functions_percent":55.965126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T14:14:49Z","commit_sha":"d98c1777cb4c46cdb4c9a268976bb49d778cc845","commit_message":"Small deobfuscation around s_800BCE18_2BEC, add `cmp_filename` macro (#379)\n\n* s_800BCE18_2BEC_0_10.field_9 -> loaded_9\n\n* s_800BCE18_2BEC_0_0 modelHdr_8, modelIdx_C\n\n* macro for 8-character strings\n\n* func_80056CB4 => Lm_ModelFind\n\n* rename loaded_9 to lmIndex_9\n\n* objName_0 => modelName_0","measures":{"fuzzy_match_percent":27.046732,"total_code":2879592,"matched_code":773632,"matched_code_percent":26.866028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3659,"matched_functions_percent":55.965126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-17T05:01:40Z","commit_sha":"3c13597d64996978bc2c6564351b5cbd90856b0b","commit_message":"Fixed point revision (#375)\n\n* `QX_12`\n\n* Remove `FP_HEALTH` and `FP_ALPHA`.\n\n* QX_4\n\n* `QX_8`\n\n* Remove `Q0_8`\n\n* `QX_12_TO_QX_8`\n\n* `QX_4_TO_QX_12`\n\n* `QX_8_TO_QX_12`\n\n* Simplify fixed-point converters more\n\n* Remove `Q0_8_TO_Q12`\n\n* Minor doc fix","measures":{"fuzzy_match_percent":27.046732,"total_code":2879592,"matched_code":773632,"matched_code_percent":26.866028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3659,"matched_functions_percent":55.965126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-16T23:57:17Z","commit_sha":"a22316cdff4267b071ecd20ebad78277c248862e","commit_message":"bodyprog: fix local type, improve string compare\n\nthanks @pseregiet and @Mc-muffin for suggestions!","measures":{"fuzzy_match_percent":27.046732,"total_code":2879592,"matched_code":773632,"matched_code_percent":26.866028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3659,"matched_functions_percent":55.965126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-16T23:45:08Z","commit_sha":"4c8fd99024348d2615318dc4d7992f0d471e32a6","commit_message":"bodyprog: dedupe `s_func_8006CC44` fields with `s_func_8006CC44_CC` struct\n\n`s_func_8006B8F8` renamed to `s_func_8006CC44_CC`","measures":{"fuzzy_match_percent":27.046732,"total_code":2879592,"matched_code":773632,"matched_code_percent":26.866028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3659,"matched_functions_percent":55.965126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-16T21:23:37Z","commit_sha":"821c5be59c83100a44bcb5a7b0415585ea4cd049","commit_message":"maps: match map pickup funcs","measures":{"fuzzy_match_percent":27.046732,"total_code":2879592,"matched_code":773632,"matched_code_percent":26.866028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3659,"matched_functions_percent":55.965126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-16T20:08:03Z","commit_sha":"e317ae3e95a72db4fb607d74c1af3691b93ac970","commit_message":"match func_8006B8F8, func_8006B318, func_8006AEAC, func_8006A940, func_8006A4A8 (#378)\n\nCo-authored-by: emoose <emoose@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":27.03284,"total_code":2879592,"matched_code":773232,"matched_code_percent":26.852137,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3649,"matched_functions_percent":55.812176,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-16T08:36:23Z","commit_sha":"0822ec4b4dc9aa618168f55ccbd3a610632757f2","commit_message":"match func_8006C45C, func_8006C0C8, func_8006BF88, func_8006BCC4, func_8006BB50 (#376)\n\nCo-authored-by: karas84 <karas84@users.noreply.github.com>\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>\nCo-authored-by: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":26.91088,"total_code":2879592,"matched_code":769720,"matched_code_percent":26.730177,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3643,"matched_functions_percent":55.720406,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-16T00:20:18Z","commit_sha":"8da7ab1dc9c53a9c7bbd0f6bbee1526bf7dcddf2","commit_message":"map1_s06: match `func_800D63D8`\n\nHad weird issue with this, the `KEY_HIDE` etc strings were getting placed in .text right before the func code, instead of in .rodata\nOnly happened when a INCLUDE_ASM func preceeded this func, some reason that stopped `.rdata` line being emitted in the .s\nAdding `void test() {}` before the func fixed it, but then that caused non-match\nLuckily the INCLUDE_ASM before this was a simple Event_MapTake call, so just added that in and it fixed it, but something to look out for","measures":{"fuzzy_match_percent":26.845175,"total_code":2879592,"matched_code":767828,"matched_code_percent":26.66447,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3638,"matched_functions_percent":55.64393,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T22:41:39Z","commit_sha":"ff3dcd0fcb166b55643b61f4cbc3c3d71a381382","commit_message":"permute.sh: cleanup old tmp files in background\n\npermuter sometimes leaves behind temp files which can pile up during\nlong runs, and even eat all disk space. added a background cleanup\nto get rid of older temp files as it runs","measures":{"fuzzy_match_percent":26.82934,"total_code":2879592,"matched_code":767372,"matched_code_percent":26.648638,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3636,"matched_functions_percent":55.61334,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T22:03:10Z","commit_sha":"a99eaaae71b1e4a4b4617c49d0bc4c0a55d9d53e","commit_message":"bodyprog: match func_8006CF18, func_8006CC9C (#374)\n\n* match func_8006CF18, func_8006CC9C\n\n* add function declaration","measures":{"fuzzy_match_percent":26.82934,"total_code":2879592,"matched_code":767372,"matched_code_percent":26.648638,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3636,"matched_functions_percent":55.61334,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T19:48:50Z","commit_sha":"0ead5c3c767f7f3a190895564988e0ec856c864a","commit_message":"map0_s01: add `FP_ANGLE` to `EventPositionInit`","measures":{"fuzzy_match_percent":26.798223,"total_code":2879592,"matched_code":766476,"matched_code_percent":26.617521,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3634,"matched_functions_percent":55.58275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T19:27:19Z","commit_sha":"b7f966d9457b41a3735ebd7dcede25a4a214b8f2","commit_message":"map0_s01: update names","measures":{"fuzzy_match_percent":26.798223,"total_code":2879592,"matched_code":766476,"matched_code_percent":26.617521,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3634,"matched_functions_percent":55.58275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T19:05:52Z","commit_sha":"44069b0484d4105d9e4ae204bc8ba3fc44b697ee","commit_message":"map0_s01: match `func_800DCCF4`\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: pseregiet <pseregiet@users.noreply.github.com>\nCo-authored-by: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":26.798223,"total_code":2879592,"matched_code":766476,"matched_code_percent":26.617521,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3634,"matched_functions_percent":55.58275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T13:47:22Z","commit_sha":"15229c4b86d788272da5b50953a3d26626530680","commit_message":"Deobfuscate item-related functions and globals","measures":{"fuzzy_match_percent":26.745161,"total_code":2879592,"matched_code":764948,"matched_code_percent":26.564459,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3633,"matched_functions_percent":55.567448,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T11:22:11Z","commit_sha":"c39e22e4c8a1c55456f11a165763ba4a12626043","commit_message":"match func_8006D2B4, func_8006EEB8, func_8006C248 (#373)\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":26.745161,"total_code":2879592,"matched_code":764948,"matched_code_percent":26.564459,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3633,"matched_functions_percent":55.567448,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T10:42:34Z","commit_sha":"8016d93ab079b95846f73a5f5d4ed5a5ed43f1cd","commit_message":"`0x8005E0DC` -> `Map_EffectTexturesLoad`","measures":{"fuzzy_match_percent":26.67015,"total_code":2879592,"matched_code":762788,"matched_code_percent":26.489449,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3630,"matched_functions_percent":55.521564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T09:36:25Z","commit_sha":"0323797749c08289c886ab4ae4618ad76ba1c30a","commit_message":"Add `e_EffectTextureFlags` enum, name global","measures":{"fuzzy_match_percent":26.67015,"total_code":2879592,"matched_code":762788,"matched_code_percent":26.489449,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3630,"matched_functions_percent":55.521564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-15T08:31:42Z","commit_sha":"ba3eeb6ae9518b4ac43151a2bba5dfc57c020c37","commit_message":"Fix build","measures":{"fuzzy_match_percent":26.67015,"total_code":2879592,"matched_code":762788,"matched_code_percent":26.489449,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3630,"matched_functions_percent":55.521564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-14T19:39:32Z","commit_sha":"aafad1ce7d6395e24f604e71f8597a940e4b1ef0","commit_message":"bodyprog: match `func_8005E0DC`\n\nCo-authored-by: karas84 <karas84@users.noreply.github.com>\nCo-authored-by: IWILLCRAFT-M0d <IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":26.67015,"total_code":2879592,"matched_code":762788,"matched_code_percent":26.489449,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3630,"matched_functions_percent":55.521564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-14T12:53:54Z","commit_sha":"7d61b841fe98b17a6c9f82689f47155f706d6b32","commit_message":"Names, constants, anim info tables (#371)\n\n* Name constant, type conversions\n\n* Type conversions\n\n* Name constant, remove padding field\n\n* Newlines\n\n* Anim info table progress\n\n* Anim infos progress\n\n* Anim infos progress\n\n* Minor changes\n\n* Minor changes","measures":{"fuzzy_match_percent":26.641535,"total_code":2879592,"matched_code":761964,"matched_code_percent":26.460833,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3629,"matched_functions_percent":55.50627,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-14T11:24:25Z","commit_sha":"c5acf290f9b206632e28f352f94b70b333888b76","commit_message":"match func_8006EE0C func_8006E150 (#370)","measures":{"fuzzy_match_percent":26.641535,"total_code":2879592,"matched_code":761964,"matched_code_percent":26.460833,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3629,"matched_functions_percent":55.50627,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-14T04:20:28Z","commit_sha":"d6d2ce338cb02d6ab35155b3ae1dc3f31ba23674","commit_message":"Name constants","measures":{"fuzzy_match_percent":26.606668,"total_code":2879592,"matched_code":760960,"matched_code_percent":26.425966,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3627,"matched_functions_percent":55.47568,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-13T17:38:35Z","commit_sha":"c65ea3abd66d08afc9c584ec2eeb1cd23090427e","commit_message":"maps: match common item pickup funcs\n\nThese probably could be made into a sharedFunc with a bunch of ifdefs\nfor each map, would be kinda ugly though\nLooks like the func is part of each maps `event.c` split too, so doubt it\nwould have came from a shared .c\n\nTODO: rename symbols of them to `MapEvent_CommonItemTake`","measures":{"fuzzy_match_percent":26.606668,"total_code":2879592,"matched_code":760960,"matched_code_percent":26.425966,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3627,"matched_functions_percent":55.47568,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-13T16:23:29Z","commit_sha":"3c2cc4ae3e4a8f8043cf8ddaba78ca9994a4231d","commit_message":"maps: split events to `_events.c`, rename `Event_` -> `MapEvent_`\n\nEvent_ could give conflicts with the engine Event_ funcs, renamed to\nmake more clear that they're separate","measures":{"fuzzy_match_percent":26.477345,"total_code":2879592,"matched_code":757236,"matched_code_percent":26.296642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3603,"matched_functions_percent":55.108597,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-09-13T15:58:47Z","commit_sha":"b7127aa846c7a308ddf167c66e873faa62f6c2f6","commit_message":"maps: fix 4 shared funcs","measures":{"fuzzy_match_percent":26.477345,"total_code":2879592,"matched_code":757236,"matched_code_percent":26.296642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3603,"matched_functions_percent":55.108597,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-09-13T15:49:04Z","commit_sha":"e475ace9681326b7dd61ddab746852ab1f074bb9","commit_message":"maps: fix 2 NON_MATCHING, run config formatter","measures":{"fuzzy_match_percent":26.445257,"total_code":2879592,"matched_code":756312,"matched_code_percent":26.264555,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3599,"matched_functions_percent":55.047417,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-09-13T15:46:05Z","commit_sha":"23f6854c8295913a626b458f8aa0c0b933387ca1","commit_message":"Use correct camera AABB Q format","measures":{"fuzzy_match_percent":26.445251,"total_code":2879592,"matched_code":756000,"matched_code_percent":26.253717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3598,"matched_functions_percent":55.032124,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-09-13T15:41:41Z","commit_sha":"ed0fbac7a98bf0bf1f4a0a3adb3a9928e5b9f35c","commit_message":"Added sharedFunc_800D8A00_0_s00 (#369)\n\n* Added sharedFunc_800D8A00_0_s00\n\n* Clean up","measures":{"fuzzy_match_percent":26.445251,"total_code":2879592,"matched_code":756000,"matched_code_percent":26.253717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3598,"matched_functions_percent":55.032124,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-09-13T15:32:06Z","commit_sha":"22d8d6fdd303230097d8b0f17d4283dcf6fc9cc5","commit_message":"configs: run formatter","measures":{"fuzzy_match_percent":25.422607,"total_code":2879592,"matched_code":726552,"matched_code_percent":25.231075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3580,"matched_functions_percent":54.75681,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-09-13T15:30:44Z","commit_sha":"fe6a14659707b0cae3a77d69c42738e4556ba784","commit_message":"maps: match/share 2 funcs\n\nalso removed jtbl hacks from maptool now rodata is migrated","measures":{"fuzzy_match_percent":25.422607,"total_code":2879592,"matched_code":726552,"matched_code_percent":25.231075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3580,"matched_functions_percent":54.75681,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-09-13T13:07:02Z","commit_sha":"db856bff07079797aae9c89f52f90f0838166b79","commit_message":"maps: rodata migrate (#368)\n\n* maps: start rodata migrate\n\n* maps: re-add map matches\n\n* maps: re-add map messages\n\n* maps: migrate map0_s00/map0_s01/map0_s02\n\n* maps: fix 2 NON_MATCHING\n\nstill a nonmatching `sharedFunc_800D8244_1_s02` in map1_s02, seems to\nhave a diff in that func\n\nTODO: re-split map messages & event funcs","measures":{"fuzzy_match_percent":25.35686,"total_code":2879592,"matched_code":724520,"matched_code_percent":25.16051,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3569,"matched_functions_percent":54.588554,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-09-13T08:08:10Z","commit_sha":"1674958bda57592a086c4ced7f9f671584207cb5","commit_message":"General maintenance (#365)\n\n* Standardised renames, docs\n\n* Name vars, demagicking, bool conversions\n\n* Update struct typedefs\n\n* Demagic remaining screen fade statuses\n\n* Convert hex to dec\n\n* Add `const` to constants\n\n* Standardised renames, docs\n\n* Name vars, demagicking, bool conversions\n\n* Update struct typedefs\n\n* Demagic remaining screen fade statuses\n\n* Convert hex to dec\n\n* Add `const` to constants\n\n* Minor deobfuscation\n\n* Demagic camera flags\n\n* Camera data demagicking\n\n* Camera data demagicking\n\n* Camera data demagicking\n\n* Minor changes\n\n* Demagic camera constants\n\n* Update vc_main.c\n\n* Update types","measures":{"fuzzy_match_percent":25.34797,"total_code":2879592,"matched_code":724264,"matched_code_percent":25.151619,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3568,"matched_functions_percent":54.57326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-13T07:46:10Z","commit_sha":"cb73f2f257133312e49ea9da7d82c2f243bdf176","commit_message":"bodyprog: fixups","measures":{"fuzzy_match_percent":25.34797,"total_code":2879592,"matched_code":724264,"matched_code_percent":25.151619,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3568,"matched_functions_percent":54.57326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-13T07:18:31Z","commit_sha":"782e44b2fd68647f431eaf0b7fa5f95acd277f55","commit_message":"bodyprog: match `func_8006E78C` `func_8006EB8C`\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":25.34797,"total_code":2879592,"matched_code":724264,"matched_code_percent":25.151619,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3568,"matched_functions_percent":54.57326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-12T21:35:51Z","commit_sha":"e4c3e8405f78e13e7da71927e18733e7dccce67f","commit_message":"bodyprog: match func_8006E53C func_8006DEB0 (#367)","measures":{"fuzzy_match_percent":25.290182,"total_code":2879592,"matched_code":722600,"matched_code_percent":25.093832,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3566,"matched_functions_percent":54.54267,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-12T21:31:05Z","commit_sha":"0b859d459f8f96253e32a1e50c05a5dcae944d25","commit_message":"map0_s02: match 2 funcs","measures":{"fuzzy_match_percent":25.251984,"total_code":2879592,"matched_code":721500,"matched_code_percent":25.055632,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3564,"matched_functions_percent":54.512085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-11T18:22:21Z","commit_sha":"fc6715ec1ca092ed298509bba757b65e18c73ace","commit_message":"Bodyprog: matched 2 functions (#366)\n\n* Bodyprog: matched func_800622B8\n\nCo-authored-by: emoose <emoose@users.noreply.github.com>\n\n* Bodyprog: matched func_8005C478\n\nCo-authored-by: Karas <karas84@users.noreply.github.com>\n\n---------\n\nCo-authored-by: emoose <emoose@users.noreply.github.com>\nCo-authored-by: Karas <karas84@users.noreply.github.com>","measures":{"fuzzy_match_percent":25.248926,"total_code":2879592,"matched_code":721412,"matched_code_percent":25.052578,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3562,"matched_functions_percent":54.481495,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-11T09:00:24Z","commit_sha":"8005ba229a413ec69a54c9f2c554397b16b211ed","commit_message":"Secure include guards","measures":{"fuzzy_match_percent":25.191557,"total_code":2879592,"matched_code":719760,"matched_code_percent":24.995209,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3560,"matched_functions_percent":54.450905,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-11T08:46:07Z","commit_sha":"55be6db92338e50a6037a664ccc781175cd5a2e3","commit_message":"Rough local var and param names, demagicking","measures":{"fuzzy_match_percent":25.191557,"total_code":2879592,"matched_code":719760,"matched_code_percent":24.995209,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3560,"matched_functions_percent":54.450905,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-11T06:05:37Z","commit_sha":"08b0c7f6d68fe75c5fe1ba3d29ce75d2859fcc63","commit_message":"Move `math.h` to `math` folder (#363)","measures":{"fuzzy_match_percent":25.191557,"total_code":2879592,"matched_code":719760,"matched_code_percent":24.995209,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3560,"matched_functions_percent":54.450905,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-11T02:14:37Z","commit_sha":"6dff67199ab9fe47f93c558276eb4172953e9b63","commit_message":"bodyprog: match 4 funcs (#364)\n\n* match func_800705E4, func_8006FAFC\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\n\n* match func_8006F3C4, func_8006F620\n\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":25.191557,"total_code":2879592,"matched_code":719760,"matched_code_percent":24.995209,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3560,"matched_functions_percent":54.450905,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-11T01:06:53Z","commit_sha":"f57de66033f18fd81deedae7cafd983b14b41541","commit_message":"event_flags: fixup typos","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-11T00:57:27Z","commit_sha":"2e3de568a80914d408215ee1b524a6d4abfcf3c9","commit_message":"event_flags: fill in common item pickups for all maps\n\nWonder if the weird M7S01 event numbering is related to the newspaper\nbug, maybe they forgot to add some event-idx offset for those maps,\ncausing them to reuse existing ones?\n\nNot sure which map actually includes the missing newspaper though","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-10T21:17:27Z","commit_sha":"d0ddafd681206729c5442a4b6eb63c66ca74685c","commit_message":"event_flags: name some item pickups","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-10T18:25:14Z","commit_sha":"78befec234a49c401a07294d37559268a619e423","commit_message":"Dedupe 12x16 font atlas column count constant","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-10T18:16:29Z","commit_sha":"67f2690500d8f6365286fcf6f6e11e03f2c23fc7","commit_message":"Dedupe font constants","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-10T17:50:21Z","commit_sha":"efc9738c0c525f01170de12f66f20947d6602860","commit_message":"Deobfuscate a demo function, demagicking","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-10T17:20:49Z","commit_sha":"1c88bf45250dc757607f23e66df854480284f69b","commit_message":"Add `Savegame_EventFlagGet` / `Savegame_EventFlagClear`\n\nGot most eventFlags refs to use these, except for a weird one inside\n`Ai_Bloodsucker_Init`, not sure how to make that one work yet.\n\nMade separate file to hold the flags enum, once we've mapped out more\nwe can probably move map-specific ones to the map headers instead.\n\nAdded MAPT/MAPX to MapOverlayId based on order of their HB_ anm files\n(seen one unmatched func `func_8005E0DC` check for one of these)\n\nSwitched EventFlagSet/EventFlagSetAlt around since most code was using\nthe alt version.","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-10T16:57:32Z","commit_sha":"ca8dfa63a9f6ea6d9b005339fe8b0b00c7c6ec68","commit_message":"Remove redundant `FP_ALPHA_NORM` macro","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-10T16:39:43Z","commit_sha":"4a6ba73d72402fca2d52ceb39db71c4eff9edb5e","commit_message":"General maintenance (#355)\n\n* Pass\n\n* Const params\n\n* Formatting\n\n* Remove comments\n\n* Color conversions\n\n* Demagicking, update docs\n\n* Move comments, minor renames\n\n* Work out `ALESSA_ANIM_INFOS`, add `FP_TIME_ANIM` macro\n\n* Add decls, fix error\n\n* Renames, docs\n\n* Update anim duration format\n\n* Tidying pass\n\n* Fix errors\n\n* Rename enum, revert color conversion\n\n* Use Q types, clearer names in anim funcs\n\n* Name constant\n\n* Tidying pass\n\n* Docs, FP macros\n\n* Clearer keyframe name usage\n\n* Update FP macros, minor renames\n\n* Minor change\n\n* Fix build, add `STICK_THRESHOLD` constant","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T19:02:31Z","commit_sha":"8ccf4534d3294e05c98e699c8c9e1542ba3fc1eb","commit_message":"bodyprog: match `func_8008E5B4`, fixup funcs to use libgpu macros\n\nCo-authored-by: belek666 <belek666@users.noreply.github.com>\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":25.113352,"total_code":2879592,"matched_code":717508,"matched_code_percent":24.917002,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3556,"matched_functions_percent":54.38972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T17:58:39Z","commit_sha":"7a66c2a84d594a8c44720659e088fd13e08e1094","commit_message":"bodyprog: add `Padlock` to `g_Chara_FileInfo`","measures":{"fuzzy_match_percent":25.096684,"total_code":2879592,"matched_code":717028,"matched_code_percent":24.900333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3555,"matched_functions_percent":54.374428,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T17:55:39Z","commit_sha":"d6a329b9e3cdf9b48699a826b1aabf71033a09d4","commit_message":"bodyprog: add chara names/filenames to `g_Chara_FileInfo`, fix bitfield offsets","measures":{"fuzzy_match_percent":25.096684,"total_code":2879592,"matched_code":717028,"matched_code_percent":24.900333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3555,"matched_functions_percent":54.374428,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T16:14:16Z","commit_sha":"b248d5832c65cf4b69440727b34a6cd5a369f45e","commit_message":"match func_80044090, func_80044420, func_80045534 (#362)\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":25.096684,"total_code":2879592,"matched_code":717028,"matched_code_percent":24.900333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3555,"matched_functions_percent":54.374428,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T08:02:25Z","commit_sha":"57b4ef6e4a745d698e5237843152be1e9790880d","commit_message":"Rng_GenerateInt fixup\n\nNot sure why `high` param of these needs to be unsigned...\nThese two seem to be the only users of `Rng_GenerateInt` which use\nnon-zero `low`, might be related?","measures":{"fuzzy_match_percent":25.004587,"total_code":2879592,"matched_code":714376,"matched_code_percent":24.808237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3552,"matched_functions_percent":54.328545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T07:44:46Z","commit_sha":"3567443303e69bab1b5e772e50486f216c45b2f3","commit_message":"bodyprog: use `Rng_GenerateInt` in `Gfx_MainMenu_FogRandomize`","measures":{"fuzzy_match_percent":25.004587,"total_code":2879592,"matched_code":714376,"matched_code_percent":24.808237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3552,"matched_functions_percent":54.328545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T07:41:25Z","commit_sha":"3c95baefbcf90306d8c617bbaada8fa5e9bf7391","commit_message":"Change `Rng_Rand16` to return `s32`","measures":{"fuzzy_match_percent":25.004587,"total_code":2879592,"matched_code":714376,"matched_code_percent":24.808237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3552,"matched_functions_percent":54.328545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T03:39:48Z","commit_sha":"122c043dd20c2b6447c70da953940f21b4c97b32","commit_message":"symbol recognition","measures":{"fuzzy_match_percent":25.004587,"total_code":2879592,"matched_code":714376,"matched_code_percent":24.808237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3552,"matched_functions_percent":54.328545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-09T01:08:17Z","commit_sha":"11dc25a0792feb85398869040ac7d5b93d13e757","commit_message":"Bodyprog: data migration 9 (#361)\n\n* A lot of big data objects migration\n\n* memorycard data\n\n* strange memcard_2 data\n\n* g_MapMsg data\n\n* more data","measures":{"fuzzy_match_percent":25.004587,"total_code":2879592,"matched_code":714376,"matched_code_percent":24.808237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3552,"matched_functions_percent":54.328545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T18:29:40Z","commit_sha":"544b7f895f23e0b8bbd0bdb81d6c0c8f2b8b6f16","commit_message":"incorrect symbol name fix","measures":{"fuzzy_match_percent":25.004587,"total_code":2879592,"matched_code":714376,"matched_code_percent":24.808237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3552,"matched_functions_percent":54.328545,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T18:21:10Z","commit_sha":"642a2f1ae9a030a5d4649a2382d558202661bbef","commit_message":"Bodyprog: Matched func_8005C944 (#360)","measures":{"fuzzy_match_percent":25.001532,"total_code":2879592,"matched_code":714288,"matched_code_percent":24.805182,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3551,"matched_functions_percent":54.313248,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T18:11:20Z","commit_sha":"512cb2d1935196cd2306f0337aee5b34771d39e2","commit_message":"matching compilation build fix","measures":{"fuzzy_match_percent":24.985,"total_code":2879592,"matched_code":713812,"matched_code_percent":24.78865,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3550,"matched_functions_percent":54.297947,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T17:05:33Z","commit_sha":"ec7f4f221a2b2b8eeaa760b579e247a734b6fd03","commit_message":"Rename 3D model structures, fields and functions (#358)\n\n```\nObjPrimitive -> Primitive\nObjHeader -> MeshHeader\nObjList -> ModelHeader\nPlmTexList -> Material\nPlmHeader -> LmHeader\n```\nWhy change PLM to LM? because there are two file extensions used: `.PLM` for map models and `.ILM` for characters. But they are the same file format. `.ILM` has one less buffer (the unknown one). Other than that they are identical. Including identical header structure. So it is confusing to rename it now, but in the end it will be better.\n\nI only changed PLM / ILM part. Haven't changed IPD part, because we need more research on that.","measures":{"fuzzy_match_percent":24.98464,"total_code":2879592,"matched_code":713572,"matched_code_percent":24.780317,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3549,"matched_functions_percent":54.282654,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T17:02:02Z","commit_sha":"b9c80d59dcc3d789ba5c939b08260e90b5fd6070","commit_message":"g_OrderingTables, g_OtTags, g_ActiveBuffer (#356)\n\n* D_800B5C40 overlap fixup.\n\n* D_800B5C40 => g_OtTags0\n\n* g_ObjectTableIdx => g_ActiveBuffer\n\n* Correct definition of g_OtTags1\n\n* sym format\n\n* g_ObjectTableN => g_OrderingTableN\n\n* use GsOT_TAG, fill in g_OrderingTables","measures":{"fuzzy_match_percent":24.985,"total_code":2879592,"matched_code":713812,"matched_code_percent":24.78865,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3550,"matched_functions_percent":54.297947,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T15:41:07Z","commit_sha":"fbe5a9d164ae4ef93313c213547bc428e16d8669","commit_message":"Add missing includes, func decls, remove unused locals\n\nThere's a lot of `(s32)Rng_Rand16()` in the project, maybe should look\ninto changing return type of it.\n(some of the Rng_Rand16 calls that don't need `(s32)` could be using\nimplicit s32 ref, if `rng.h` wasn't included?)","measures":{"fuzzy_match_percent":24.985,"total_code":2879592,"matched_code":713812,"matched_code_percent":24.78865,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3550,"matched_functions_percent":54.297947,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T15:31:43Z","commit_sha":"07e3ed55d0fde2dc6bf49229c42b35c3cadf062d","commit_message":"match func_80042E2C, func_80042EBC, func_80043740 (#357)\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.985,"total_code":2879592,"matched_code":713812,"matched_code_percent":24.78865,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3550,"matched_functions_percent":54.297947,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T12:21:01Z","commit_sha":"0542635ab593bdfcfdcbb179640a111abf4ec5ad","commit_message":"Dedupe `s_func_80057344` -> `s_800BCE18_2BEC_0`, add missing includes, fixups\n\nRemoved a bunch of unused vars and added missing header externs/func decls\n\nTODO:\nLook into weirdness in `func_8003C110`\nOnly checked main bodyprog folder for missing includes, need to check subdirs & maps","measures":{"fuzzy_match_percent":24.943605,"total_code":2879592,"matched_code":712620,"matched_code_percent":24.747255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3547,"matched_functions_percent":54.252064,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T11:15:24Z","commit_sha":"f17de272284bc9d6bc319f9c5a8afb7b09fff429","commit_message":"Bodyprog data migration 8 (#354)\n\n* sd data\n\n* pitch table\n\n* u8 random_tbl[512]\n\n* u32 spu_ch_tbl[24]\n\n* more sd data\n\n* memory card data\n\n* text_draw_debug data\n\n* move big smf tables to a separate file","measures":{"fuzzy_match_percent":24.943605,"total_code":2879592,"matched_code":712620,"matched_code_percent":24.747255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3547,"matched_functions_percent":54.252064,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T11:13:04Z","commit_sha":"9d05f66e78906ff3ed3fea8f77b82e3d98608e63","commit_message":"Bodyprog: remove hack (#353)\n\n* remove hack, fix config\n\n* cleanup\n\n* simplify\n\n* add matches to bodyprog\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.943605,"total_code":2879592,"matched_code":712620,"matched_code_percent":24.747255,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3547,"matched_functions_percent":54.252064,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T07:46:09Z","commit_sha":"fa3ecd19c1948c97876e5ca085d44612daed3e48","commit_message":"Text draw cleanup (#352)\n\n* text_draw.h\n\n* static const u8 g_12x16FontWidths[84], static const u32 g_MapMsg_Colors[8]","measures":{"fuzzy_match_percent":24.920824,"total_code":2879592,"matched_code":711964,"matched_code_percent":24.724474,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3544,"matched_functions_percent":54.20618,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T06:50:17Z","commit_sha":"13c04ecd47edf3a6b3db3a76a71764be88f6c6c5","commit_message":"compilation fix","measures":{"fuzzy_match_percent":24.920824,"total_code":2879592,"matched_code":711964,"matched_code_percent":24.724474,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3544,"matched_functions_percent":54.20618,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-08T01:36:59Z","commit_sha":"f54739ac546f6dd36eace572b01b8a6980a7542c","commit_message":"bodyprog: creating splits","measures":{"fuzzy_match_percent":24.917213,"total_code":2879592,"matched_code":711860,"matched_code_percent":24.720863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3543,"matched_functions_percent":54.190887,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":109,"complete_units":0}},{"timestamp":"2025-09-07T21:14:38Z","commit_sha":"4b7b37ab5a8f11860863591d597621a6ad7b4ba3","commit_message":"Bodyprog: data migration 7 (#351)\n\n* s_800AA894 D_800AA894[727]\n\n* s_Sfx g_Sfx_Table0[420]\n\n* static u8 D_800AD480[24]\n\n* text draw data\n\n* last chunk of bodyprog data\n\n* correct s_800AD4C8 D_800AD4C8[70]","measures":{"fuzzy_match_percent":24.915129,"total_code":2879592,"matched_code":711800,"matched_code_percent":24.718779,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T21:12:37Z","commit_sha":"4bb75ba99a7d345a1e2b0541b5b9a60cb5422a09","commit_message":"Bodyprog: Matched func_80068CC0 (#350)","measures":{"fuzzy_match_percent":24.915129,"total_code":2879592,"matched_code":711800,"matched_code_percent":24.718779,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T15:59:30Z","commit_sha":"8868cbde0ace9180f8d948aa2065a7205d714553","commit_message":"Bodyprog data move6 (#349)\n\n* s_FsImageDesc D_800A9A04\n\n* more bodyprog data\n\n* crack another section\n\n* next section\n\n* static data\n\n* corect data placement\n\n* y_ary\n\n* bodyprog_CD_80047D50 data\n\n* s_800C37D4 D_800AA274\n\n* static u8 D_800AA5E0[36]","measures":{"fuzzy_match_percent":24.9036,"total_code":2879592,"matched_code":711468,"matched_code_percent":24.70725,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3541,"matched_functions_percent":54.16029,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T15:47:41Z","commit_sha":"3560859e547cd6801818f1e03bd217d68b4af8f8","commit_message":"bodyprog: rename `GameState_Unk0` to `Init`, name `Player_AnimUpdate`, fixups\n\nSH2 seems to use Init for some of their startup funcs","measures":{"fuzzy_match_percent":24.9036,"total_code":2879592,"matched_code":711468,"matched_code_percent":24.70725,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3541,"matched_functions_percent":54.16029,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T12:13:05Z","commit_sha":"16c49fd6de5d0ad21785f990c1c23fa3458a7764","commit_message":"Build fix","measures":{"fuzzy_match_percent":24.9036,"total_code":2879592,"matched_code":711468,"matched_code_percent":24.70725,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3541,"matched_functions_percent":54.16029,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T10:18:23Z","commit_sha":"3ab32dbb1f2952f9b31bb04b5e3fb15f943bab6f","commit_message":"Update anim info table names to reflect naming convention for constants","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T09:54:31Z","commit_sha":"7f8d3be76cce1c94cb2c6981a6e8a4ca4125ec0d","commit_message":"Add constants for Harry upper/lower body bone masks","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T09:53:16Z","commit_sha":"c9cc977db863aa458a3f0cfcc4a78c891a05bbb6","commit_message":"`D_800E1410` -> `LOCKER_DEAD_BODY_ANIM_INFOS`","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T09:30:06Z","commit_sha":"80c4e4f22f3c0185a268e862d336b51ae8458a0f","commit_message":"Add `s_AnmHeader*` to func args\n\nTODO: looks like all the `Ai_*_Update` funcs take in `s_AnmHeader*`, only\nupdated a few here.","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T08:36:03Z","commit_sha":"4d639ac4794983c9a376c1574d11cfa4ed2f6091","commit_message":"Demagic player bone masks (#347)\n\n* Demagic player bone masks, docs\n\n* Light tidying\n\n* Demagic anim statuses, rename Harry bone enum","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T05:51:52Z","commit_sha":"2de93449bf8aa849f0106fbfc810f184a70c4325","commit_message":"Add `BITMASK_RANGE` macro, `disabledAnimBones_18` to player extra data\n\nFixed some SysState/GameState mixups","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T02:38:34Z","commit_sha":"3b5620a1a4dfc6281d01213c014f4f80fefad330","commit_message":"bodyprog: add `NPC_BONE_COUNT_MAX`","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T01:46:53Z","commit_sha":"8a5b25dd19662dd023717a4c70cc65fa565ffb1b","commit_message":"bodyprog: minor fixups","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T01:45:11Z","commit_sha":"cfe5629538de7bc79eaecb0bb5fc2588ef11f2ff","commit_message":"bodyprog: match `Anim_BoneInit`, dedupe `s_AnimFile` -> `s_AnmHeader`","measures":{"fuzzy_match_percent":24.905684,"total_code":2879592,"matched_code":711528,"matched_code_percent":24.709333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3542,"matched_functions_percent":54.17559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T01:42:56Z","commit_sha":"bc26ee16aeb57d562c31606b2107a0c0f874f627","commit_message":"Bodyprog data move4 (#346)\n\n* s_800AFC78 D_800AFC78\n\n* VC_NEAR_ROAD_DATA vcNullNearRoad\n\n* more vc stuff\n\n* some bodyprog_80085D78 data\n\n* s16 D_800AFD1C[]\n\n* func_8008D8C0\n\n* u16 D_800AFD7C[]\n\n* more data\n\n* demo data\n\n* move some data as static inside functions","measures":{"fuzzy_match_percent":24.894987,"total_code":2879592,"matched_code":711220,"matched_code_percent":24.698637,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3541,"matched_functions_percent":54.16029,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T00:16:02Z","commit_sha":"dd30113aa693a8764be64bbb0dfe6f7ec0dbe4e0","commit_message":"bodyprog: match `func_800563E8`, minor fixups","measures":{"fuzzy_match_percent":24.894987,"total_code":2879592,"matched_code":711220,"matched_code_percent":24.698637,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3541,"matched_functions_percent":54.16029,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-07T00:06:32Z","commit_sha":"eb411b5e60d43d77f039bd4d845ee3d622c071a4","commit_message":"Minor regression fix","measures":{"fuzzy_match_percent":24.890682,"total_code":2879592,"matched_code":711096,"matched_code_percent":24.69433,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3540,"matched_functions_percent":54.144997,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-06T23:54:14Z","commit_sha":"e32c79447b805e71f3fb3639fad055e3274e1945","commit_message":"bodyprog: match `Anim_BoneUpdate`\n\nThanks to @laura-a-n-n for working out the ANM format: https://github.com/laura-a-n-n/silent-hill-museum/blob/main/ksy/sh1anm.ksy\n\nTODO: not sure if s_AnimFile is meant to be same as s_AnmHeader here,\nthe guessed size of that doesn't line up.\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: laura-a-n-n <laura-a-n-n@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.868595,"total_code":2879592,"matched_code":710460,"matched_code_percent":24.672245,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3539,"matched_functions_percent":54.129704,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-06T23:31:39Z","commit_sha":"4f52d00f997468a13840391bede6499393c98011","commit_message":"minor compilation issue fix","measures":{"fuzzy_match_percent":24.848593,"total_code":2879592,"matched_code":709884,"matched_code_percent":24.652243,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-06T23:27:28Z","commit_sha":"c56e54da19052036b279a84a7f8226c7a5c902d2","commit_message":"Bodyprog: creating splits + compilation fix\n\nPushed this earlier because the previous commit being push when I was doing this and broke the compilation","measures":{"fuzzy_match_percent":24.848593,"total_code":2879592,"matched_code":709884,"matched_code_percent":24.652243,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":107,"complete_units":0}},{"timestamp":"2025-09-06T17:54:36Z","commit_sha":"236a2d08687d43785afb5eb586bfa4a47d532eda","commit_message":"bodyprog: match `func_800435E4`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.848314,"total_code":2879592,"matched_code":709876,"matched_code_percent":24.651964,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":102,"complete_units":0}},{"timestamp":"2025-09-06T17:11:06Z","commit_sha":"dc72dc78bd9493c16d9152365c905647de063699","commit_message":"bodyprog: match `func_800431E4`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.839842,"total_code":2879592,"matched_code":709632,"matched_code_percent":24.643492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3537,"matched_functions_percent":54.099113,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":102,"complete_units":0}},{"timestamp":"2025-09-06T12:50:24Z","commit_sha":"cc1762eff743e749ed79832e45f0bebbde42b87c","commit_message":"Bodyprog data move3 (#345)\n\n* more buffers\n\n* g_Player_ stuff\n\n* s_800AFBF4 D_800AFBF4[11]","measures":{"fuzzy_match_percent":24.828033,"total_code":2879592,"matched_code":709292,"matched_code_percent":24.631683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3536,"matched_functions_percent":54.083817,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":102,"complete_units":0}},{"timestamp":"2025-09-06T11:15:05Z","commit_sha":"8ab8d3d2c566b224af28ca6adf9813f3f80d7b9f","commit_message":"Bodyprog data move2 (#344)\n\n* more stuff\n\n* more stuff\n\n* s_AnimInfo g_MaybePlayerAnims[]\n\n* s_AnimInfo g_MaybePlayerAnims[57]\n\n* replace 0xFF with NO_VALUE","measures":{"fuzzy_match_percent":24.828033,"total_code":2879592,"matched_code":709292,"matched_code_percent":24.631683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3536,"matched_functions_percent":54.083817,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":102,"complete_units":0}},{"timestamp":"2025-09-06T09:35:18Z","commit_sha":"632312bad1a24d9b2d6da1bb9df4b76da4e15a45","commit_message":"documentation: link to anm spec (#343)","measures":{"fuzzy_match_percent":24.828033,"total_code":2879592,"matched_code":709292,"matched_code_percent":24.631683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3536,"matched_functions_percent":54.083817,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":102,"complete_units":0}},{"timestamp":"2025-09-06T09:17:29Z","commit_sha":"075f140b3db6ee7b324011d71b20b55c2e949544","commit_message":"bodyprog data move to C v2 (#342)\n\n* u16 D_800AE5F0[136], u8 D_800AE700[16]\n\n* s_800AE710 D_800AE710[4]\n\n* s32 D_800AE71C[], q19_12 D_800AE73C\n\n* u8 D_800AE740[], s32 D_800AE770\n\n* D_800AE774. D_800AE7E4, D_800AE820\n\n* u32 D_800AE8A0[327]\n\n* s_800AEDBC D_800AEDBC[]\n\n* s16 D_800AEEDC[][2]\n\n* some animation timings tables ?","measures":{"fuzzy_match_percent":24.828033,"total_code":2879592,"matched_code":709292,"matched_code_percent":24.631683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3536,"matched_functions_percent":54.083817,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":102,"complete_units":0}},{"timestamp":"2025-09-06T06:54:07Z","commit_sha":"ea3ad48cd42133226d72cda1c0063ba1399ebb88","commit_message":"bodyprog: symbol recognition (#341)","measures":{"fuzzy_match_percent":24.828033,"total_code":2879592,"matched_code":709292,"matched_code_percent":24.631683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3536,"matched_functions_percent":54.083817,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":102,"complete_units":0}},{"timestamp":"2025-09-06T04:34:20Z","commit_sha":"a796c513221676e595f1fbdaf57dbf1bbfbdf6f3","commit_message":"Add `TIME_STEP_30_FPS` constant\n\nCo-Authored-By: Giragast <7213501+Giragast@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-06T02:13:04Z","commit_sha":"1ee9d84921e7a348007ccb4701e8de7a2427ff87","commit_message":"Bodyprog data move0 (#338)\n\n* Move some bodyprog globals to C\n\n* more globals\n\n* s_800AE204 change unknown types to s16\n\nAll known fields are s16, chances the unknowns are the same are very\nhigh. This is gonna make the table export easier too.\n\n* s_800AE204 D_800AE204[26]\n\n* D_800AE4DC\n\n* fix number\n\n* s_800AE4DC layout\n\n* SVECTOR D_800AE500[4]\n\n* more tables\n\n* RECT D_800AE5B8[2]\n\n* u16 D_800AE5C8[2], u16 D_800AE5CC[18]\n\n* move struct to bodyprog.h","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-05T23:39:19Z","commit_sha":"ad170540ac5e078804e60946bc30fc1fa6005247","commit_message":"bodyprog: dedupe `s_func_80057090` -> `GsOT`","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-05T22:38:43Z","commit_sha":"8e9b212df014d6464e7c3ac2311012e8434450f7","commit_message":"Update my link (#339)","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-05T22:38:38Z","commit_sha":"fd8f3e37cd4d31ea27be4cc20bcb67bba4fb7b74","commit_message":"Update README.md (#340)\n\nThis is for all Old Silent Hill, not just after shool.","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-05T14:52:26Z","commit_sha":"e53186a5c9754c84b508e73ddcf038eeffa23d7e","commit_message":"bodyprog: dedupe `s_800C1450_58` -> `s_PlmTexList_8`","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-05T14:05:34Z","commit_sha":"584b95c4c89286ad16b6b171c4e4527ee5cdbba8","commit_message":"File Formats: fix sh1_model.bt link","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-05T11:54:46Z","commit_sha":"1c48cb366575498cb77390e1c8230bf24a8a27d0","commit_message":"PLM / IPD cleanup (#336)\n\n* PLM / IPD cleanup\n\n* more work\n\n* func_8005B1FC","measures":{"fuzzy_match_percent":24.85401,"total_code":2879592,"matched_code":710040,"matched_code_percent":24.65766,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T22:40:45Z","commit_sha":"610951c800cb23dbc152c3e7195228c76db0ba15","commit_message":"bodyprog: match `func_80056244`\n\nCo-authored-by: tomorroisnew <tomorroisnew@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.851093,"total_code":2879592,"matched_code":709956,"matched_code_percent":24.654743,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3538,"matched_functions_percent":54.114407,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T20:12:59Z","commit_sha":"8476e873f21fa44c99c9b353b22493c721deabf7","commit_message":"Bodyprog: Matched 4 functions (#337)\n\n* Bodyprog: Match func_80064F04\n\n* Bodyprog: Match func_8005E7E0\n\n* Bodyprog: Match func_8005E7E0, forgot to add in header file\n\n* Bodyprog: Matched func_8005B55C\n\n* Bodyprog: matched func_8006F8FC\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>\n\n* Bodyprog: Matched func_8006E0AC\n\n---------\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.842064,"total_code":2879592,"matched_code":709696,"matched_code_percent":24.645714,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3537,"matched_functions_percent":54.099113,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T19:44:48Z","commit_sha":"a569d2ec8bd6845bfba874b85d6d2aced4a634bc","commit_message":"Coding Conventions: improve bitfield section","measures":{"fuzzy_match_percent":24.810532,"total_code":2879592,"matched_code":708788,"matched_code_percent":24.614182,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3532,"matched_functions_percent":54.022633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T19:14:10Z","commit_sha":"4fef66d0cc103403cedbd480cdc96baff4966176","commit_message":"Coding Conventions: mention bitfield naming","measures":{"fuzzy_match_percent":24.810532,"total_code":2879592,"matched_code":708788,"matched_code_percent":24.614182,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3532,"matched_functions_percent":54.022633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T16:00:26Z","commit_sha":"f9fe1ec916a91c9d553b076b7b4b64d6e5e92bdb","commit_message":"bodyprog: match `func_80043830`, merge structs into `D_800C1020`, remove dupe struct\n\nTODO: rename `s_800C117C` to `s_800C1020_15C`, `s_800C1450` to `s_800C1020_430`\n\n`s_800C117C.field_8` / `field_A` should probably be `gridX` / `gridZ`","measures":{"fuzzy_match_percent":24.810532,"total_code":2879592,"matched_code":708788,"matched_code_percent":24.614182,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3532,"matched_functions_percent":54.022633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T13:29:32Z","commit_sha":"d383a223e663930bf4bfbb5eb85a9ee97b6e522d","commit_message":"clang-format: fix bitfields/funcptrs, get initializers closer\n\npretty close to our style now, can test it out with\n   clang-format -i src/bodyprog/bodyprog_80040A64.c\n   git diff src/bodyprog/bodyprog_80040A64.c\n\nmost of the changes it shows should be actual fixups, still a couple\nissues with it though\n\nfixed an issue with bad indentation at start of initializers\nbut it still doesn't move first brace to separate line.. seems to have\nsome issues with arrays too, not sure why it changes format of them so\nmuch\n\nfixed up clang-tidy to check struct typedef names too, and removed some\nC++ only things","measures":{"fuzzy_match_percent":24.801224,"total_code":2879592,"matched_code":708520,"matched_code_percent":24.604876,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3531,"matched_functions_percent":54.00734,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T09:37:54Z","commit_sha":"1fcaec6bddf663aa5bffd6606cef8b55277a3a05","commit_message":"clang-tidy: update FunctionIgnoredRegexp\n\neg. allows `IpdHeader_ModelLinkObjectLists` `SomeSystem_DoThing_ForThat` `func_80001234` `SomeSystem_Repeat_8times`\nWarns for `somefunc` `asdfghj_800C` `do_a_thing_8001`","measures":{"fuzzy_match_percent":24.801224,"total_code":2879592,"matched_code":708520,"matched_code_percent":24.604876,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3531,"matched_functions_percent":54.00734,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T09:26:17Z","commit_sha":"e63182e0b1fa7360d2290eae5f9a036baf8edc87","commit_message":"tools: add `-m32` to compile_commands.json","measures":{"fuzzy_match_percent":24.801224,"total_code":2879592,"matched_code":708520,"matched_code_percent":24.604876,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3531,"matched_functions_percent":54.00734,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T09:09:07Z","commit_sha":"7000ef58eaa0f684b87a3cc0c23f6172a08908bd","commit_message":"clang-tidy: fixup struct/variable name checks\n\nSilences some vscode warnings\n\n(wish I knew how to fix the warnings for `STATIC_ASSERT_SIZEOF`,\nguessing clangd might be using 64-bit pointers or something...)","measures":{"fuzzy_match_percent":24.801224,"total_code":2879592,"matched_code":708520,"matched_code_percent":24.604876,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3531,"matched_functions_percent":54.00734,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T08:54:04Z","commit_sha":"025948197f25304e690584e1fec3b58f25048be7","commit_message":"bodyprog: match `IpdHeader_ModelBufferLinkObjectLists`\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.801224,"total_code":2879592,"matched_code":708520,"matched_code_percent":24.604876,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3531,"matched_functions_percent":54.00734,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T08:22:31Z","commit_sha":"0add0ad5982995e430c681511d6d8ea5e63543ec","commit_message":"Fix build","measures":{"fuzzy_match_percent":24.794697,"total_code":2879592,"matched_code":708332,"matched_code_percent":24.598345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3530,"matched_functions_percent":53.992046,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T04:30:58Z","commit_sha":"beebe2b4a446b81de4a6feca2cac4eae1b5b55bb","commit_message":"bodyprog: add decl for `func_800433B8`","measures":{"fuzzy_match_percent":24.794697,"total_code":2879592,"matched_code":708332,"matched_code_percent":24.598345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3530,"matched_functions_percent":53.992046,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-04T04:19:49Z","commit_sha":"1703cb460eebd9e32317fad5c6901c967192dbdb","commit_message":"bodyprog: match `func_800433B8`\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.794697,"total_code":2879592,"matched_code":708332,"matched_code_percent":24.598345,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3530,"matched_functions_percent":53.992046,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T23:16:59Z","commit_sha":"5b21dfc81ae2dd183c3f41739f7dcbf3fab84ef4","commit_message":"Bodyprog: Cleanup douplicate structs (#332)\n\n* Bodyprog: combine s_func_80069FFC as s_func_8006AB50\n\n* Bodyprog: cleanup more structs\n\n* Bodyprog: merged s_func_8006BC34 to s_func_8006CC44\n\n* Bodyprog: merged s_func_8006C1B8 to s_func_8006CC44\n\n* Bodyprog: Merge s_func_80070400_0 to s_SubCharacter\n\n* Bodyprog: Merge s_func_80037A4C to s_AreaLoadParams","measures":{"fuzzy_match_percent":24.780388,"total_code":2879592,"matched_code":707920,"matched_code_percent":24.584038,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3529,"matched_functions_percent":53.97675,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T17:03:42Z","commit_sha":"78329576bed1b7a74a6dac5630529714ce2b9147","commit_message":"Bodyprog: Matched 5 small functions (#331)\n\n* Bodyprog: Matched func_80043554\n\n* Bodyprog: Matched func_8006DAE4\n\n* Bodyprog: Matched func_8006D774\n\n* Bodyprog: Matched func_800452EC\n\n* Bodyprog: matched func_8006C3D4\n\nCo-authored-by: Dominik Peters <Bl00D4NGEL@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Dominik Peters <Bl00D4NGEL@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.780388,"total_code":2879592,"matched_code":707920,"matched_code_percent":24.584038,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3529,"matched_functions_percent":53.97675,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T16:56:44Z","commit_sha":"877eb8f9dbb48aa1a2694c066a3edadfc0cfdcee","commit_message":"maps: match `Particle_Update`, update `shared.h` (#323)\n\n* Incomplete match for Particle_Update function\n\n* Fix for Particle_Update, moved g_Particles into shared.h\n\n* Cleanup\n\n---------\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":24.763165,"total_code":2879592,"matched_code":707424,"matched_code_percent":24.566814,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3524,"matched_functions_percent":53.900276,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T15:19:28Z","commit_sha":"92e41a7410934fb0863117784b5e2bc3588985ef","commit_message":"bodyprog: fixup `func_8003EDB8`","measures":{"fuzzy_match_percent":23.531462,"total_code":2879592,"matched_code":671956,"matched_code_percent":23.335112,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3501,"matched_functions_percent":53.548485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T15:00:43Z","commit_sha":"6f16601ef88aaeb2d8899df93721c071f5852fda","commit_message":"bodyprog: `s_sub_StructUnk3` fixups","measures":{"fuzzy_match_percent":23.531462,"total_code":2879592,"matched_code":671956,"matched_code_percent":23.335112,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3501,"matched_functions_percent":53.548485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T13:11:28Z","commit_sha":"6ea140ab67b1d60db24c1007f2e78c1f43a0ae67","commit_message":"bodyprog: name `Gfx_FogParamsSet`","measures":{"fuzzy_match_percent":23.531462,"total_code":2879592,"matched_code":671956,"matched_code_percent":23.335112,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3501,"matched_functions_percent":53.548485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T11:50:42Z","commit_sha":"d3389faccfd2446ce04b291f0c968eb6effa8212","commit_message":"bodyprog: add `s_800C4168` names from SilentHillMapExaminer","measures":{"fuzzy_match_percent":23.531462,"total_code":2879592,"matched_code":671956,"matched_code_percent":23.335112,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3501,"matched_functions_percent":53.548485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T08:18:16Z","commit_sha":"1631b7a45f51ed08368f7bda8ab4bda7f57274ca","commit_message":"map7_s02: match `func_800D8C00`","measures":{"fuzzy_match_percent":23.531462,"total_code":2879592,"matched_code":671956,"matched_code_percent":23.335112,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3501,"matched_functions_percent":53.548485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T07:53:32Z","commit_sha":"260ff865b8c838e7e67df10e041450cb0d83cd77","commit_message":"`func_800D8BAC` -> `Character_CoordTransformUpdate`, apply more FP conversions, comments","measures":{"fuzzy_match_percent":23.527433,"total_code":2879592,"matched_code":671840,"matched_code_percent":23.331083,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3500,"matched_functions_percent":53.53319,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T05:32:35Z","commit_sha":"dacf96c9c42a03b4484b58884323674194e40c88","commit_message":"Fix doc mixup","measures":{"fuzzy_match_percent":23.527433,"total_code":2879592,"matched_code":671840,"matched_code_percent":23.331083,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3500,"matched_functions_percent":53.53319,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-03T05:14:24Z","commit_sha":"01be226e2203740c62dd6ee6f485b933a5f12954","commit_message":"Use clearer Q conversion standards","measures":{"fuzzy_match_percent":23.527433,"total_code":2879592,"matched_code":671840,"matched_code_percent":23.331083,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3500,"matched_functions_percent":53.53319,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-02T22:06:41Z","commit_sha":"2bc4e33c4f65704cbeff26a3e179815d228f7eac","commit_message":"s_WaterZone + func_8008E51C + related code touchup (#330)\n\n* s_WaterZone + func_8008E51C + related code touchup\n\n* func_8008E51C => Map_GetWaterZone + sym format","measures":{"fuzzy_match_percent":23.527433,"total_code":2879592,"matched_code":671840,"matched_code_percent":23.331083,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3500,"matched_functions_percent":53.53319,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-02T21:47:27Z","commit_sha":"1cfd6b6eca938805e99dfc5fc5ef9a1ea5ee4ae1","commit_message":"bodyprog: \"finished\" rodata migration\n\nAt the end I went for the split route, still two struct can't be migrated or inserted, but that will be fixed later down the road when we finally have files mapped out.","measures":{"fuzzy_match_percent":23.522154,"total_code":2879592,"matched_code":671688,"matched_code_percent":23.325804,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3499,"matched_functions_percent":53.517895,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":101,"complete_units":0}},{"timestamp":"2025-09-02T20:02:35Z","commit_sha":"477d313013ad15f84b9a2355792a3f90af12194f","commit_message":"removed unnecessary file","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":100,"complete_units":0}},{"timestamp":"2025-09-02T16:23:28Z","commit_sha":"27a92c1324b9816dd000f26aa773b21f888532a9","commit_message":"Update math","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":100,"complete_units":0}},{"timestamp":"2025-09-02T15:51:07Z","commit_sha":"b5282c5504b380eea4ccd3dd645d85f9230b1144","commit_message":"bodyprog split, move default controller data to C (#329)\n\n* Split bodyprog at func_80033548\n* Move default controller data to C\n* Move func_80032CE8 to a new file to make its string literal end up in\n  the right place.","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":100,"complete_units":0}},{"timestamp":"2025-09-02T13:45:34Z","commit_sha":"4e3df50b6b2c0fa982774d3a8766c43007f5c0a7","commit_message":"camera: sort out some Q format ambiguity","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T13:43:37Z","commit_sha":"6631bdc975a93eda440d4cc948652cd5c4e5df2b","commit_message":"Map Speed zones (#328)\n\n* g_MapTypes to globals.c s_SpeedZone\n\n* Update Player_LowerBodyUpdate with new info\n\n* rename speed zones\n\n* make speed zone tables static\n\n* add missing struct and enum names","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T12:14:57Z","commit_sha":"1f44d35af58a8599a862c203a0550ecf35453a75","commit_message":"bodyprog: remove duped funcs, add `VC_ROAD_DIR_TYPE`","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T09:48:46Z","commit_sha":"8204973654afe2de5af55a93620dd86e87b18b74","commit_message":"bodyprog: build fix","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T09:28:45Z","commit_sha":"183652cfa97d5deffcc948b18fe6f59153fc352e","commit_message":"Remove unneeded symbol decls for local options strings, fix up math docs","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T05:34:59Z","commit_sha":"73defea699e5ae276d2811aa56ee94c2131c1fcf","commit_message":"bodyprog: Rodata migration (#327)","measures":{"fuzzy_match_percent":23.518543,"total_code":2879592,"matched_code":671584,"matched_code_percent":23.322193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T04:27:56Z","commit_sha":"67420846743bea094927e9a3e44c1a358cd93f0c","commit_message":"Name blood splat effect arrays","measures":{"fuzzy_match_percent":23.522154,"total_code":2879592,"matched_code":671120,"matched_code_percent":23.30608,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T04:07:26Z","commit_sha":"023d0ebcaecd7adb8b51c5eea21eebd39b87f5ea","commit_message":"Formatting, proofreading, float color conversions","measures":{"fuzzy_match_percent":23.522154,"total_code":2879592,"matched_code":671120,"matched_code_percent":23.30608,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T02:45:24Z","commit_sha":"702c2c2129990c7cb8c7138047720d5c0e00a2d4","commit_message":"s_MapBounds to globals.c (#325)","measures":{"fuzzy_match_percent":23.522154,"total_code":2879592,"matched_code":671120,"matched_code_percent":23.30608,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-02T02:44:03Z","commit_sha":"da9040ce49cc7aa9e879822f7dc742c1e858c7cc","commit_message":"Bodyprog: Matched 4 functions (#326)\n\n* Bodyprog: matched func_80089524\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>\n\n* Bodyprog: matched func_8006DC18\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>\n\n* Bodyprog: matched func_8006DA08\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>\n\n* Bodyprog: Matched func_8005E70C\n\n---------\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.522154,"total_code":2879592,"matched_code":671120,"matched_code_percent":23.30608,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3498,"matched_functions_percent":53.5026,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-01T16:03:13Z","commit_sha":"4c0677bb39cc4e1f0a5050e75cb79954a671db9b","commit_message":"s_MapType and s_MapBounds (#324)","measures":{"fuzzy_match_percent":23.49354,"total_code":2879592,"matched_code":670296,"matched_code_percent":23.277464,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3494,"matched_functions_percent":53.441418,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-01T14:19:03Z","commit_sha":"319b92b0baefab5a39e06fd535a597191eaf96a8","commit_message":"bodyprog: match `func_80056558`\n\nCo-Authored-By: pseregiet <pseregiet@users.noreply.github.com>\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.49354,"total_code":2879592,"matched_code":670296,"matched_code_percent":23.277464,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3494,"matched_functions_percent":53.441418,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-01T12:20:51Z","commit_sha":"ba22ef2fbd4259cec452bc34953c12824d478c64","commit_message":"bodyprog: match `func_80055A50`\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.48729,"total_code":2879592,"matched_code":670116,"matched_code_percent":23.271214,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3493,"matched_functions_percent":53.426125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-01T07:46:25Z","commit_sha":"726fdd81383313d06b0e003b6cbea8cda055c85a","commit_message":"Bodyprog: Matched func_8006D01C (#322)","measures":{"fuzzy_match_percent":23.485065,"total_code":2879592,"matched_code":670052,"matched_code_percent":23.26899,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3492,"matched_functions_percent":53.410828,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-01T04:53:42Z","commit_sha":"fd9181fc44b1f42454553deca059f5dc1d086b6b","commit_message":"tools: update maspsx (run `git submodule update` after pulling)","measures":{"fuzzy_match_percent":23.462008,"total_code":2879592,"matched_code":669388,"matched_code_percent":23.245932,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3491,"matched_functions_percent":53.395535,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-01T04:31:39Z","commit_sha":"d13628b82e1a71565e01aa4b3b136573f56f2aff","commit_message":"Misc: documents update + minor objdiff configs touch up (#314)\n\n* docs: updating coding conventions 1\n\n* docs: updating coding conventions 2\n\n* docs: updating coding conventions 3 + objdiff configs touch ups\n\n* docs: updating coding conventions 3.1\n\n* docs: updating docs 1\n\n* docs: updating docs 2\n\n* makefile: forcing `report` to always compile all overlays\n\nDid that to avoid this to happen again\nhttps://decomp.dev/Vatuu/silent-hill-decomp/SLUS-00707/7bc9b9adaf991e3ec2f836f5219f483fe5a03dfd\n\n* docs: PR fix 1\n\n* Proofreading (@Sezzary)\n\n---------\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.462008,"total_code":2879592,"matched_code":669388,"matched_code_percent":23.245932,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3491,"matched_functions_percent":53.395535,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-09-01T04:12:16Z","commit_sha":"d81de47432627c0dd34e98f41939575e482479ba","commit_message":"Formatting, merge structs, rough naming, add `OVERFLOW_GUARD` math macro","measures":{"fuzzy_match_percent":23.462008,"total_code":2879592,"matched_code":669388,"matched_code_percent":23.245932,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3491,"matched_functions_percent":53.395535,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T21:41:52Z","commit_sha":"45f454de698f08df45af5518f20096d78c7f571c","commit_message":"func_800D16C4 (#319)\n\n* func_800D16C4\n\n* cleanup func_800D16C4","measures":{"fuzzy_match_percent":23.462008,"total_code":2879592,"matched_code":669388,"matched_code_percent":23.245932,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3491,"matched_functions_percent":53.395535,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T21:40:31Z","commit_sha":"2447ba1242e27a3bed011e9b887a98b7a8412339","commit_message":"minor cleanup func_8003C220 (#320)","measures":{"fuzzy_match_percent":23.424362,"total_code":2879592,"matched_code":668304,"matched_code_percent":23.208288,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3490,"matched_functions_percent":53.380238,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T21:39:08Z","commit_sha":"6eaea79e34d1439afb13b8217fa60eca28fbd5ae","commit_message":"Bodyprog: Matched func_8008E794 (#321)","measures":{"fuzzy_match_percent":23.424362,"total_code":2879592,"matched_code":668304,"matched_code_percent":23.208288,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3490,"matched_functions_percent":53.380238,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T15:33:31Z","commit_sha":"92d0374ff4385f6efc23e061a795a243f9cf1474","commit_message":"Formatting, demagicking","measures":{"fuzzy_match_percent":23.39922,"total_code":2879592,"matched_code":667580,"matched_code_percent":23.183146,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3489,"matched_functions_percent":53.364944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T12:54:06Z","commit_sha":"c23c376c8e4795e37ad1d3a130103a9b2c1d2d41","commit_message":"Update docs","measures":{"fuzzy_match_percent":23.39922,"total_code":2879592,"matched_code":667580,"matched_code_percent":23.183146,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3489,"matched_functions_percent":53.364944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T11:52:09Z","commit_sha":"5876771b32e6b618c008671865004ee24682d2f6","commit_message":"add matches to bodyprog (#317)\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.39922,"total_code":2879592,"matched_code":667580,"matched_code_percent":23.183146,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3489,"matched_functions_percent":53.364944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T11:49:05Z","commit_sha":"6f513a359eeab4a463255976f3477be26fcad2c7","commit_message":"fix build: add missing func_800CE000 declaration (#318)","measures":{"fuzzy_match_percent":23.313375,"total_code":2879592,"matched_code":665108,"matched_code_percent":23.097301,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3483,"matched_functions_percent":53.27317,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T08:28:33Z","commit_sha":"93458cbd9f5ff67e720027a1021e2628b203e5e1","commit_message":"Bodyprog: matched func_8005D9B8 (#315)\n\nCo-authored-by: Mark Street <mkst@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.271006,"total_code":2879592,"matched_code":663888,"matched_code_percent":23.054932,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3482,"matched_functions_percent":53.257877,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T08:16:34Z","commit_sha":"e10d8841fb0cddbc1a02acb9a112fcc2b4125141","commit_message":"Name PLM and IPD funcs","measures":{"fuzzy_match_percent":23.249754,"total_code":2879592,"matched_code":663276,"matched_code_percent":23.03368,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3481,"matched_functions_percent":53.24258,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T07:14:55Z","commit_sha":"6afeceff707f1aaaf363271d1e1bfa58fd609a56","commit_message":"bodyprog: match `func_80042C3C`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.249754,"total_code":2879592,"matched_code":663276,"matched_code_percent":23.03368,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3481,"matched_functions_percent":53.24258,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T06:07:09Z","commit_sha":"f7fb2c32f64c21e29dc70569aef33f3b80fcf225","commit_message":"Name some func parameters and local vars","measures":{"fuzzy_match_percent":23.23489,"total_code":2879592,"matched_code":662848,"matched_code_percent":23.018816,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3480,"matched_functions_percent":53.227287,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-31T03:36:56Z","commit_sha":"0138b623289b1fe6a6d1d6848cc923191608760c","commit_message":"Demagic player anims","measures":{"fuzzy_match_percent":23.23489,"total_code":2879592,"matched_code":662848,"matched_code_percent":23.018816,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3480,"matched_functions_percent":53.227287,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T23:30:26Z","commit_sha":"0ab7cf51751914275439b0fac7ff0baca82c7c28","commit_message":"Bodyprog: Matched 3 functions (#313)\n\n* Bodyprog: Matched func_80045258\n\n* Bodyprog: Matched func_80066D90\n\n* Bodyprog: Matched func_8006C794","measures":{"fuzzy_match_percent":23.23489,"total_code":2879592,"matched_code":662848,"matched_code_percent":23.018816,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3480,"matched_functions_percent":53.227287,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T22:54:49Z","commit_sha":"f4520ef67ee4188b8e2930000e691c9e82ea0f8b","commit_message":"maps: share 5 funcs","measures":{"fuzzy_match_percent":23.217943,"total_code":2879592,"matched_code":662360,"matched_code_percent":23.00187,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3477,"matched_functions_percent":53.181404,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T21:34:00Z","commit_sha":"4b2359d5307932281b13117b0517d0773a1b4752","commit_message":"bodyprog: match `func_80055A90`, update maspsx submodule","measures":{"fuzzy_match_percent":23.10265,"total_code":2879592,"matched_code":659040,"matched_code_percent":22.886576,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3459,"matched_functions_percent":52.90609,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T15:43:43Z","commit_sha":"9f529e1904d61d34a85a072452b50945881d7d1d","commit_message":"Name params","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T14:46:14Z","commit_sha":"922411ab981eb061623928f1b591ae7eac6ca0b0","commit_message":"Demagic some player anims","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T13:31:24Z","commit_sha":"b9957a9ab9db21b62c9320e513017476849c6f14","commit_message":"Minor corrections, comments","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T13:07:05Z","commit_sha":"bb9e04d2d33556534cfa76796f8b812d651c639e","commit_message":"More anim status format conversions","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T12:25:29Z","commit_sha":"c4118b40a014136e504305bec156f8bff6d65ec4","commit_message":"Demagicking","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T12:03:10Z","commit_sha":"f2d07671ed2937b2136625b18ec356ed85700e82","commit_message":"correct MapOverlayHeader.func_168 signature, move some data to C (#312)\n\nBased on work in progress decomp of func_800CE000\n(https://decomp.me/scratch/lLJ1i) the signature of func_168 has been\ncorrected. Some more map0_s01 data was moved to C","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T10:14:34Z","commit_sha":"59503ee5f8f5a916ad02ab38a23ab8be40fdb4f8","commit_message":"Formatting","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T09:16:34Z","commit_sha":"cd655105fdb782fd3aa2dd4e2d87e0cee0c5a0ae","commit_message":"Map0 s01 tables (#311)\n\n* map0_s01: g_mapHeaderTable_38 and g_LoadableItems\n\n* add g_mapHeaderTable_38, g_LoadableItems to sym","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T07:14:03Z","commit_sha":"8687a7bb483b2932a885e8be98b805042b46fc9e","commit_message":"map0_s00: g_mapHeaderTable_38 and g_LoadableItems (#310)","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T06:56:40Z","commit_sha":"43bc007aa4e01e6e0fcd6b329150ab4b8ec3e66d","commit_message":"remake s_MapOverlayHeader.field_2C (#309)\n\nThis field is not a struct, it's an array of bytes with variable size\nthat ends with zero. In the upcoming commits these arrays will be moved\nto C. (some other data/code has to be migrated first).","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-30T06:54:54Z","commit_sha":"ce1c38adf88141b4e638950d84236623f8f796fd","commit_message":"func_800CBFB0 (#308)","measures":{"fuzzy_match_percent":23.094732,"total_code":2879592,"matched_code":658812,"matched_code_percent":22.878656,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3458,"matched_functions_percent":52.89079,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T22:58:14Z","commit_sha":"ddd3b6d708a5fbfa6c69f3b90f64b6464a668551","commit_message":"format configs (#307)","measures":{"fuzzy_match_percent":23.089314,"total_code":2879592,"matched_code":658656,"matched_code_percent":22.873241,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3457,"matched_functions_percent":52.875496,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T22:57:29Z","commit_sha":"d9627a2d881d6ae56f46412a92f6337cb7281bf3","commit_message":"Bodyprog: Matched func_8006D600 (#306)","measures":{"fuzzy_match_percent":23.089314,"total_code":2879592,"matched_code":658656,"matched_code_percent":22.873241,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3457,"matched_functions_percent":52.875496,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T15:06:39Z","commit_sha":"63f3855aae00df4be110fde3c9b63132bd8a2afc","commit_message":"Bodyprog: Matched 2 functions (#305)\n\n* Bodyprog: Matched func_8005D86C\n\n* Bodyprog: Matched func_8005CB20\n\n* Bodyprog: Cleanup func_8005CB20","measures":{"fuzzy_match_percent":23.076395,"total_code":2879592,"matched_code":658284,"matched_code_percent":22.860321,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3456,"matched_functions_percent":52.8602,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T14:36:52Z","commit_sha":"2073d91e601aff318e725758f046264e4a17b7ee","commit_message":"Add macro \"constructors\" for vector structs","measures":{"fuzzy_match_percent":23.048615,"total_code":2879592,"matched_code":657484,"matched_code_percent":22.83254,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3454,"matched_functions_percent":52.829613,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T14:09:25Z","commit_sha":"e06f7282365aa475d374aa8f23ee9966d25fc06f","commit_message":"Add screen fade status macros for clarity","measures":{"fuzzy_match_percent":23.048615,"total_code":2879592,"matched_code":657484,"matched_code_percent":22.83254,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3454,"matched_functions_percent":52.829613,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T13:23:36Z","commit_sha":"4e6cdb385881ad629c8ecac0f733db615a78ac8d","commit_message":"func_800D0274 (#304)","measures":{"fuzzy_match_percent":23.048615,"total_code":2879592,"matched_code":657484,"matched_code_percent":22.83254,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3454,"matched_functions_percent":52.829613,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T12:46:00Z","commit_sha":"dc668cb205d3e5d1463d3c238d16748801e39dc0","commit_message":"Add `FLOOR_TO_STEP` math macro\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.038612,"total_code":2879592,"matched_code":657196,"matched_code_percent":22.822538,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3453,"matched_functions_percent":52.814316,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-29T11:46:10Z","commit_sha":"1e6dc016722697f57f344ff1939f675b3eecb427","commit_message":"Split `math.h` (#303)\n\n* Revisions\n\n* Split `math.h` constants\n\n* Split `math.h` utils\n\n* Split `math.h` fixed-point utils\n\n* Move more FP macros\n\n* Add docs\n\n* Update fixed_point.h\n\n* Rename file","measures":{"fuzzy_match_percent":23.038612,"total_code":2879592,"matched_code":657196,"matched_code_percent":22.822538,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3453,"matched_functions_percent":52.814316,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T16:29:24Z","commit_sha":"ddff37cbd546ad691852c2fb434fac06213c7101","commit_message":"bodyprog: match `func_80056348`","measures":{"fuzzy_match_percent":23.038612,"total_code":2879592,"matched_code":657196,"matched_code_percent":22.822538,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3453,"matched_functions_percent":52.814316,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T15:46:45Z","commit_sha":"bf836458f5e3af1c0413a51ed85a7a335680752a","commit_message":"bodyprog: match `func_800420FC`, `func_80041ADC` -> `Fs_QueueEntryLoadStatusGet`, formatting\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":23.033056,"total_code":2879592,"matched_code":657036,"matched_code_percent":22.816982,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3452,"matched_functions_percent":52.799023,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T15:22:39Z","commit_sha":"70ace87e7394fb09f02c34bbec0ddab4c03def04","commit_message":"func_80044950 & func_800D012C (#302)\n\n* func_80044950\n\n* func_800D012C","measures":{"fuzzy_match_percent":23.02875,"total_code":2879592,"matched_code":656912,"matched_code_percent":22.812675,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3451,"matched_functions_percent":52.78373,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T14:40:59Z","commit_sha":"fca3e6d94a77a5a49aab7324b71f8f551ed1ff13","commit_message":"Formatting","measures":{"fuzzy_match_percent":23.020554,"total_code":2879592,"matched_code":656676,"matched_code_percent":22.804482,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3449,"matched_functions_percent":52.75313,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T13:50:05Z","commit_sha":"0b298ebe6273799c937f82e5f6ee8fa5c4c14966","commit_message":"Map0 s01 shared funcs2 (#301)\n\n* sharedFunc_800D2BE4_0_s01\n\n* sharedFunc_800D2274_0_s01","measures":{"fuzzy_match_percent":23.020554,"total_code":2879592,"matched_code":656676,"matched_code_percent":22.804482,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3449,"matched_functions_percent":52.75313,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T13:43:09Z","commit_sha":"212289403e1f24119b7a6a8020a6dac59f81e20f","commit_message":"Anim status format migration (#298)\n\n* Begin anim status format migration\n\n* Progress\n\n* Progress\n\n* Progress\n\n* Progress\n\n* Progress\n\n* Progress\n\n* Progress\n\n* Progress\n\n* Mass renaming\n\n* Finish\n\n* `ANIM_STATUS_GET` -> `ANIM_STATUS`\n\n* Update comment","measures":{"fuzzy_match_percent":22.967213,"total_code":2879592,"matched_code":655140,"matched_code_percent":22.751139,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3437,"matched_functions_percent":52.56959,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T13:39:18Z","commit_sha":"6a9a8758f287e8290b01dfa55591edc3db25594c","commit_message":"Map0 s01 shared funcs1 (#300)\n\n* sharedFunc_800D2200_0_s01\n\n* sharedFunc_800D2B10_0_s01\n\n* sharedFunc_800D2B28_0_s01\n\n* sharedFunc_800D2BB0_0_s01","measures":{"fuzzy_match_percent":22.967215,"total_code":2879592,"matched_code":655708,"matched_code_percent":22.770864,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3438,"matched_functions_percent":52.584885,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T12:35:29Z","commit_sha":"06e13315c6f7946139b7f4025fc3d3469a28f126","commit_message":"Bodyprog: Matched func_8008D5A0 (#299)","measures":{"fuzzy_match_percent":22.919708,"total_code":2879592,"matched_code":654340,"matched_code_percent":22.723358,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3414,"matched_functions_percent":52.217804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T09:45:43Z","commit_sha":"dbf89be9b181e554c3b2ec1b32aa221f931a2795","commit_message":"Formatting, update decls","measures":{"fuzzy_match_percent":22.902622,"total_code":2879592,"matched_code":653848,"matched_code_percent":22.706272,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3413,"matched_functions_percent":52.20251,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T09:05:09Z","commit_sha":"62650f07f8a22aa9ee5bfa36a272ec774bd26c8e","commit_message":"Random demagickings and math macro application (#297)\n\n* Demagicking\n\n* Use `FP_HEALTH`\n\n* Partial player state handling cleanup\n\n* Compile fix\n\n* Fixes\n\n* Remove test","measures":{"fuzzy_match_percent":22.902622,"total_code":2879592,"matched_code":653848,"matched_code_percent":22.706272,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3413,"matched_functions_percent":52.20251,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-28T09:01:25Z","commit_sha":"73aeca5831072e61722623d19d4f63282926a221","commit_message":"Shared func_800D21E4_0_s01 (#296)\n\n* func_800D2094 => Player_PushedOver\n\n* sharedFunc_800D21E4_0_s01\n\n* sharedFunc_800D2B00_0_s01.h","measures":{"fuzzy_match_percent":22.902622,"total_code":2879592,"matched_code":653848,"matched_code_percent":22.706272,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3413,"matched_functions_percent":52.20251,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T14:53:08Z","commit_sha":"1cbbbf37abbead72abdfe2cd01f770da81f1df76","commit_message":"Bodyprog: matched func_8006B004 (#295)\n\nCo-authored-by: Karas <karas84@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.893454,"total_code":2879592,"matched_code":653584,"matched_code_percent":22.697105,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3401,"matched_functions_percent":52.018963,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T13:51:10Z","commit_sha":"70bd6d7ca706ec489d621a2d0ace3c4f0608f91f","commit_message":"Add `Math_UnkDistTimeCalc` macro","measures":{"fuzzy_match_percent":22.877758,"total_code":2879592,"matched_code":653132,"matched_code_percent":22.681408,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3400,"matched_functions_percent":52.00367,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T13:37:09Z","commit_sha":"cca5517071ea7b26051b203eef95c825199b67a3","commit_message":"Deobfuscate angle player field, demagicking","measures":{"fuzzy_match_percent":22.877758,"total_code":2879592,"matched_code":653132,"matched_code_percent":22.681408,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3400,"matched_functions_percent":52.00367,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T10:00:21Z","commit_sha":"4a2831c77f08f98372711c610034a8e3d4520d68","commit_message":"Formatting, some demagicking","measures":{"fuzzy_match_percent":22.877758,"total_code":2879592,"matched_code":653132,"matched_code_percent":22.681408,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3400,"matched_functions_percent":52.00367,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T09:50:09Z","commit_sha":"c0f0cccc7ea1d74bf8187a8f1f1f320c0571292f","commit_message":"func_800D2094 (#294)\n\nThanks @belek666 https://decomp.me/scratch/MYRMl\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.877758,"total_code":2879592,"matched_code":653132,"matched_code_percent":22.681408,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3400,"matched_functions_percent":52.00367,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T07:42:37Z","commit_sha":"2de72e3485437caf79bc50273096359404547c7d","commit_message":"Specify fade timestep param names","measures":{"fuzzy_match_percent":22.874979,"total_code":2879592,"matched_code":653052,"matched_code_percent":22.67863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3399,"matched_functions_percent":51.988377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T07:13:30Z","commit_sha":"abe3cedd60a83a24704721b75bb1936a9d2e19e8","commit_message":"Document `g_Gfx_ScreenFade` more clearly","measures":{"fuzzy_match_percent":22.874979,"total_code":2879592,"matched_code":653052,"matched_code_percent":22.67863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3399,"matched_functions_percent":51.988377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T05:21:26Z","commit_sha":"8dc24cf5dac3caa5efe62dd588074ca317a7359a","commit_message":"Add `FP_VOLUME` and `FP_HEALTH` math macros.","measures":{"fuzzy_match_percent":22.874979,"total_code":2879592,"matched_code":653052,"matched_code_percent":22.67863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3399,"matched_functions_percent":51.988377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T05:15:13Z","commit_sha":"509695328045547e770f5c7351d57ffe796a07dd","commit_message":"Minor changes","measures":{"fuzzy_match_percent":22.874979,"total_code":2879592,"matched_code":653052,"matched_code_percent":22.67863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3399,"matched_functions_percent":51.988377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T00:42:29Z","commit_sha":"66c5b5faf675880a11cef85ddfbdfd4c32d84283","commit_message":"docs: remove 1st example code block & simplify clang-format explainer\n\ndidn't really like having two different example code blocks, removed the\nfirst one since the block for commenting was mostly the same thing","measures":{"fuzzy_match_percent":22.874979,"total_code":2879592,"matched_code":653052,"matched_code_percent":22.67863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3399,"matched_functions_percent":51.988377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T00:32:34Z","commit_sha":"29a88ea5de733f363f60e530eda2e180644daa5d","commit_message":"Update sym.bodyprog.txt (#292)","measures":{"fuzzy_match_percent":22.874979,"total_code":2879592,"matched_code":653052,"matched_code_percent":22.67863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3399,"matched_functions_percent":51.988377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-27T00:14:45Z","commit_sha":"aaf2574b251cb5ae7990ab3bd5f8ca3dabb142c6","commit_message":"match func_80040BAC func_80040E7C func_800414E0 (#293)\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.874979,"total_code":2879592,"matched_code":653052,"matched_code_percent":22.67863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3399,"matched_functions_percent":51.988377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T19:08:16Z","commit_sha":"4821a504e916c47b9d20604b7233f91f4993498b","commit_message":"g_Gfx_ScreenFade deobfuscation (#291)","measures":{"fuzzy_match_percent":22.779272,"total_code":2879592,"matched_code":650296,"matched_code_percent":22.582922,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3396,"matched_functions_percent":51.94249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T19:06:18Z","commit_sha":"027ed435dab4be164ef5eedfd2304109fe9191ea","commit_message":"bodyprog & maps: minor naming and missmatch fixes","measures":{"fuzzy_match_percent":22.779272,"total_code":2879592,"matched_code":650296,"matched_code_percent":22.582922,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3396,"matched_functions_percent":51.94249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T16:09:53Z","commit_sha":"9c7f04c1e6315aaa9c093c9313b548569ffbe3ce","commit_message":"Deobfuscate time params, `bool` conversions","measures":{"fuzzy_match_percent":22.54985,"total_code":2879592,"matched_code":642796,"matched_code_percent":22.322468,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3392,"matched_functions_percent":51.881306,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T14:46:13Z","commit_sha":"b8f36b17307bffbc9c3d936ee079910c109f6ac4","commit_message":"map0_s01: name event functions (#289)","measures":{"fuzzy_match_percent":22.54985,"total_code":2879592,"matched_code":642796,"matched_code_percent":22.322468,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3392,"matched_functions_percent":51.881306,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T14:43:16Z","commit_sha":"5f3c7826e9e751431a9e5ec80b156ed6c80ca630","commit_message":"saveload and options: minor deobfuscations","measures":{"fuzzy_match_percent":22.788078,"total_code":2879592,"matched_code":649656,"matched_code_percent":22.560696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3396,"matched_functions_percent":51.94249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T10:11:27Z","commit_sha":"c051f95dc0712782046f7102a124c19123d0274a","commit_message":"Add `FP_ANGLE_PACKED` math macro (#290)\n\n* Add `FP_ANGLE_PACKED` math macro\n\n* Progress\n\n* Progress","measures":{"fuzzy_match_percent":22.788078,"total_code":2879592,"matched_code":649656,"matched_code_percent":22.560696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3396,"matched_functions_percent":51.94249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T06:31:02Z","commit_sha":"979140f4a76f6c97b78e4d3558c90e6931856535","commit_message":"bodyprog: match `func_80043578`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.788078,"total_code":2879592,"matched_code":649656,"matched_code_percent":22.560696,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3396,"matched_functions_percent":51.94249,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T05:51:50Z","commit_sha":"bd6d501690658440600652c962f1c146a5815b9f","commit_message":"Fix function returning `void` instead of `s32`","measures":{"fuzzy_match_percent":22.784328,"total_code":2879592,"matched_code":649548,"matched_code_percent":22.556946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3395,"matched_functions_percent":51.927197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T05:27:14Z","commit_sha":"7797f0dc8dd19d92e2e8f6bdd112e8fcb5a4fdbb","commit_message":"bodyprog: `Chara_Spawn` minor corrections.","measures":{"fuzzy_match_percent":22.784328,"total_code":2879592,"matched_code":649548,"matched_code_percent":22.556946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3395,"matched_functions_percent":51.927197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T05:00:47Z","commit_sha":"d7b1f2d65c18c0ad26c4c00839fb2781b3aac8d8","commit_message":"Bodyprog: added four matches\n\nAlso added a few comments pointing to functions that are practically matched, but has minor missmatched.\n\n- func_8005AA08\n@emoose\n\n- func_8006A42C\n@emoose\n@Sezzary\n\n- func_80070DF0\n@belek666\n\n- Chara_Spawn\n@belek666\n@Sezzary\n@emoose\n@fmil95\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>\nCo-Authored-By: emoose <emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.784328,"total_code":2879592,"matched_code":649548,"matched_code_percent":22.556946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3395,"matched_functions_percent":51.927197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-26T01:09:20Z","commit_sha":"5c29b5a7653d36a31962a33f81af8dbf921e9532","commit_message":"MAP0_S01: func_800DB790 match (#288)\n\nhttps://decomp.me/scratch/IsVKw","measures":{"fuzzy_match_percent":22.706594,"total_code":2879592,"matched_code":638400,"matched_code_percent":22.169807,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3390,"matched_functions_percent":51.85072,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T23:54:44Z","commit_sha":"3fabeca8eec73833a4038cebc0cdf482298d7852","commit_message":"Compilation build fix\n\nThe new Splat update messed the setup, because we didn't properly setup the `rodata` segment and that clashes with some of the changes done in the new update.","measures":{"fuzzy_match_percent":22.679369,"total_code":2879592,"matched_code":637616,"matched_code_percent":22.142582,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3389,"matched_functions_percent":51.835423,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T20:14:10Z","commit_sha":"2d41b3ad16fe9ae88966eff9ffc55041916a584d","commit_message":"Bodyprog: Player symbol recognition work (#255)\n\n* progress\n\nalso added a function match\n\n- func_800713E8\n@belek666\n\n* progress 2\n\n* progress 2: fork from a dish\n\n* progress 3\n\n* progress 4: the room\n\n* progress: the play novel\n\n* progress: original slip\n\nfixed minor formatting issue\n\n* @Sezzary Refinement pass 1\n\n---------\n\nCo-authored-by: Sezz <sezzary@outlook.com>\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":0,"total_code":5759184,"matched_code":0,"matched_code_percent":0,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":13076,"matched_functions":0,"matched_functions_percent":0,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T15:30:50Z","commit_sha":"92644d124ee8104b5aac04c7dc3b8ce9bca35133","commit_message":"func_800D71F0 (#287)\n\nhttps://decomp.me/scratch/FDEh8 thx @Giragast\n\n---------\n\nCo-authored-by: Giragast <Giragast@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.659449,"total_code":2879592,"matched_code":645952,"matched_code_percent":22.432066,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3389,"matched_functions_percent":51.835423,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T15:26:10Z","commit_sha":"898ad7e8b9f59dd2650b55aa101141f0ff7985f4","commit_message":"Restore `void` params for RNG funcs, demagicking","measures":{"fuzzy_match_percent":22.650837,"total_code":2879592,"matched_code":645704,"matched_code_percent":22.423454,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3388,"matched_functions_percent":51.82013,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T15:09:08Z","commit_sha":"80e86ab98fc6966b9c5b2617d5875d5eceba388c","commit_message":"Bodyprog: Matched func_80069FFC (#286)\n\n* Bodyprog: matched func_80069FFC\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>\n\n* Combined s_func_8006A178 to s_800C4590 and cleanup\n\n---------\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.650837,"total_code":2879592,"matched_code":645704,"matched_code_percent":22.423454,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3388,"matched_functions_percent":51.82013,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T15:06:22Z","commit_sha":"bc7cabbb323867e27e9462f4ad5186fc8368e73c","commit_message":"func_800D3CC4 (#285)\n\nhttps://decomp.me/scratch/35uXE","measures":{"fuzzy_match_percent":22.63764,"total_code":2879592,"matched_code":645324,"matched_code_percent":22.41026,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3387,"matched_functions_percent":51.804836,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T15:04:37Z","commit_sha":"f22c74c6fd0db3e21c7ae2a0282a3ea885940da0","commit_message":"func_800D3DFC (#284)\n\nhttps://decomp.me/scratch/ugKyK","measures":{"fuzzy_match_percent":22.626812,"total_code":2879592,"matched_code":645324,"matched_code_percent":22.41026,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3387,"matched_functions_percent":51.804836,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T15:03:53Z","commit_sha":"2ccaf3f2a1fa2f394cca144d0b08956122acd556","commit_message":"match func_800D2054 (#283)","measures":{"fuzzy_match_percent":22.620283,"total_code":2879592,"matched_code":645136,"matched_code_percent":22.403728,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3386,"matched_functions_percent":51.78954,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T13:43:47Z","commit_sha":"3893e5aef1605b73967c597f17239b53db27d707","commit_message":"bodyprog: match `func_800410D8`, name math functions\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.618061,"total_code":2879592,"matched_code":645072,"matched_code_percent":22.401506,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3385,"matched_functions_percent":51.774246,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T12:42:32Z","commit_sha":"a47290e8b998fa4287a466e227e17d31e0723e76","commit_message":"maps: header fixups","measures":{"fuzzy_match_percent":22.606255,"total_code":2879592,"matched_code":644732,"matched_code_percent":22.3897,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3384,"matched_functions_percent":51.758945,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T11:09:03Z","commit_sha":"3cd4c2edc26f378ea0e83fe52cb4c07f095368b1","commit_message":"Formatting","measures":{"fuzzy_match_percent":22.606255,"total_code":2879592,"matched_code":644732,"matched_code_percent":22.3897,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3384,"matched_functions_percent":51.758945,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T10:45:54Z","commit_sha":"449bb75b1d84df0cf4a04d1679e8919c2f191bed","commit_message":"Revert \"Formatting\"\n\nThis reverts commit 1f202b3a0a900f02661885cf6c946a81128337ff.","measures":{"fuzzy_match_percent":22.606255,"total_code":2879592,"matched_code":644732,"matched_code_percent":22.3897,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3384,"matched_functions_percent":51.758945,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T10:16:51Z","commit_sha":"e280c15e30d6ac8ba2d57cca10a82fbeb86a3413","commit_message":"Map0 s01 event cleanup (#282)\n\n* decode some float numbers\n\n* make VECTOR3 arg const\n\n* InventoryItemCount enum\n\n* float nums\n\n* arg2 = volume\n\n* minor func_800DA980 cleanup","measures":{"fuzzy_match_percent":22.606255,"total_code":2879592,"matched_code":644732,"matched_code_percent":22.3897,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3384,"matched_functions_percent":51.758945,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T08:13:35Z","commit_sha":"a15702e0da29ed2d242f8d89fa30da766296381f","commit_message":"Add `sdata` and `sbss` to `configs_formatter.py` (#281)\n\n`sdata` and `sbss` (without a dot) was missing from `configs_formatter.py`\n\nhttps://github.com/ethteck/splat/issues/468","measures":{"fuzzy_match_percent":22.606255,"total_code":2879592,"matched_code":644732,"matched_code_percent":22.3897,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3384,"matched_functions_percent":51.758945,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T07:58:03Z","commit_sha":"55e0ed8b2d2de6c63ce50c1dde26cd083adb2602","commit_message":"func_800DA98 (#280)\n\nhttps://decomp.me/scratch/P0BOs\n\n---------\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.606255,"total_code":2879592,"matched_code":644732,"matched_code_percent":22.3897,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3384,"matched_functions_percent":51.758945,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-25T05:43:45Z","commit_sha":"43a7a17282183c961dbbed8b7cb4d06c8e85c476","commit_message":"Add docs, demagicking","measures":{"fuzzy_match_percent":22.481236,"total_code":2879592,"matched_code":641132,"matched_code_percent":22.26468,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3383,"matched_functions_percent":51.743652,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T19:25:14Z","commit_sha":"c6c6d363e9483684b65f986c21b11ba97130c982","commit_message":"bodyprog: match 3 funcs\n\nCo-Authored-By: ai-anton <ai-anton@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.481236,"total_code":2879592,"matched_code":641132,"matched_code_percent":22.26468,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3383,"matched_functions_percent":51.743652,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T18:18:00Z","commit_sha":"3ca4db0f78b979eb045fdf5b4ae33a7a0b56688e","commit_message":"Formatting","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T14:39:20Z","commit_sha":"05eb7d1e8f0db078414404b94af46ce95bf4674e","commit_message":"`func_80040A64` -> `Sound_StereoBalanceGet`","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T13:36:19Z","commit_sha":"9b1ba620493eff2109b21e8df19e555c8b72439b","commit_message":"Some some SFX func parameters and local vars","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T13:09:06Z","commit_sha":"f998e1e00ad80ef21e9e58c6563d566ef0cb928e","commit_message":"cleanup `s_FileInfo` (#279)\n\nCleapup `s_FileInfo` to coding standards.","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T13:06:01Z","commit_sha":"fe75cb077714e0bb69a4b9c70a684dcb1765e398","commit_message":"deobfuscate code around D_8002509C (first member of map header) (#278)","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T09:17:21Z","commit_sha":"3f055ef28251d6dd3fa4dcf81e9ac47d839928e3","commit_message":"Add a little more to math docs","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T09:06:45Z","commit_sha":"a8176f7f9a859a83dc496e521b39756afe06578c","commit_message":"Document `math.h` extensively","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T08:52:21Z","commit_sha":"9d83c4f61ec37fa56a1d1da4c8ba07a385848f56","commit_message":"Additional map header cleanup (#277)\n\nUse ARRAY_SIZE macro to set the array element count members.\nReplace remaining hardcoded addresses with #define symbols.\nReplace remaining 0x00000000 with NULL in func pointers.","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T03:54:19Z","commit_sha":"d5007e695587ed189f9237b76920213f2b6bad9f","commit_message":"Add `FP_ANGLE_PACKED_FROM` math macro","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T03:21:34Z","commit_sha":"6907a73ed2a363dd49f903dd85e1ea4ff6929c6e","commit_message":"map0_s02: match `func_800CE8B8`, docs\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.477486,"total_code":2879592,"matched_code":641024,"matched_code_percent":22.260931,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3380,"matched_functions_percent":51.697765,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T03:00:31Z","commit_sha":"0a194f5b58ee5f7d6c4bb02e864ff17e9774fe10","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":22.473179,"total_code":2879592,"matched_code":640900,"matched_code_percent":22.256624,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3379,"matched_functions_percent":51.682472,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T02:09:35Z","commit_sha":"02a5934e7672206e307eebd99b417718e61b1bd4","commit_message":"Map0 s02 header (#273)\n\n* map0_s02 map header\n\n* reformat sym files","measures":{"fuzzy_match_percent":22.473179,"total_code":2879592,"matched_code":640900,"matched_code_percent":22.256624,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3379,"matched_functions_percent":51.682472,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-24T01:29:56Z","commit_sha":"622de5fbd7d53f5c0c89cb9ce3a17384f25da06a","commit_message":"maps: change map header `func_D4/func_E4` arg to s32\n\nSeems `s_SubCharacter*` arg type came from `func_80086C58`\nSecond arg of that was typed as `s_SubCharacter*` but callers to it all\npass a s32 like `0x3C`\n\nthanks @pseregiet for mentioning on discord","measures":{"fuzzy_match_percent":22.473179,"total_code":2879592,"matched_code":640900,"matched_code_percent":22.256624,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3379,"matched_functions_percent":51.682472,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T17:38:43Z","commit_sha":"546eef3867a7c123c6945f9170c1c7690187dde3","commit_message":"map0_s02: match `Event_HealthOrAmmoItemTake`, name funcs, docs","measures":{"fuzzy_match_percent":22.473179,"total_code":2879592,"matched_code":640900,"matched_code_percent":22.256624,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3379,"matched_functions_percent":51.682472,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T17:00:16Z","commit_sha":"ed2761d9b019a97c6eb25b5614f38cff3dd5972b","commit_message":"map0_02: match `func_800CEC84`","measures":{"fuzzy_match_percent":22.466928,"total_code":2879592,"matched_code":640720,"matched_code_percent":22.250374,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3378,"matched_functions_percent":51.66718,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T16:45:43Z","commit_sha":"3a21880bfc5ebf7e2d97081235a664f7db1ed148","commit_message":"map0_s02: match `func_800CE884`","measures":{"fuzzy_match_percent":22.4654,"total_code":2879592,"matched_code":640676,"matched_code_percent":22.248846,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T15:50:01Z","commit_sha":"e3e7cc6f830d3a6558e258c1c2744510640bfb81","commit_message":"cleanup s_MapOverlayHeader (#272)\n\nFix the incorrectly named \".table200Items_4C\" and \".always200_50\". In\nfact this table can have different size in few maps and the second field\nis the element count. Same thing with \".table76Items_54\" and\n\".always150_58\". Give them a temp \"bloodSplats\" name as it seems to be\nrelated to that based on memory observation during gameplay.\n\nReplace long 0x00000000 with just 0 and NULL for func pointers.\n #define sharedData symbol alias. Once those are moved to C we can\n delete them.","measures":{"fuzzy_match_percent":22.463594,"total_code":2879592,"matched_code":640624,"matched_code_percent":22.24704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T13:48:24Z","commit_sha":"8d8cdd868a688d0ee1b7398073dfad9ec056163d","commit_message":"map0_s01 g_MapOverlayHeader and related data (#271)\n\n* map0_s00_anim_info: regenerate with signed values\n\n* map0_s01 g_MapOverlayHeader and related data","measures":{"fuzzy_match_percent":22.463594,"total_code":2879592,"matched_code":640624,"matched_code_percent":22.24704,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T10:34:04Z","commit_sha":"92de42b3e1f0b104e0ba23237a00190dcdd4813a","commit_message":"Update options screen docs","measures":{"fuzzy_match_percent":22.463678,"total_code":2879592,"matched_code":641520,"matched_code_percent":22.278156,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T07:17:52Z","commit_sha":"a5822445e9e952aba0d490e7095672c62ea85c2b","commit_message":"Update bodyprog_80040A64.c","measures":{"fuzzy_match_percent":22.463678,"total_code":2879592,"matched_code":641520,"matched_code_percent":22.278156,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T07:13:26Z","commit_sha":"c94ef149be1e96fdc67ee8dad71ea832a562a610","commit_message":"Simplify math macro usage","measures":{"fuzzy_match_percent":22.459305,"total_code":2879592,"matched_code":641256,"matched_code_percent":22.268988,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T06:51:58Z","commit_sha":"4ac988c4f473c01edbdbee6803e747c505c3c331","commit_message":"Minor changes","measures":{"fuzzy_match_percent":22.463678,"total_code":2879592,"matched_code":641520,"matched_code_percent":22.278156,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T03:11:02Z","commit_sha":"02dec0e4cf3bbcce0ef5ae0e72b18bf1d2cdc058","commit_message":"bodyprog: rename `s_EventParam` fields based on SilentHillMapExaminer names","measures":{"fuzzy_match_percent":22.463678,"total_code":2879592,"matched_code":641520,"matched_code_percent":22.278156,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-23T00:02:11Z","commit_sha":"64c9fe8a02f1252dbe87e9f0223e01ffd54d2518","commit_message":"bodyprog: add bitfields to `s_AreaLoadParams`\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.463678,"total_code":2879592,"matched_code":641520,"matched_code_percent":22.278156,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-22T18:45:05Z","commit_sha":"312a3261350e514128ceed3633db84f2caa232bb","commit_message":"bodyprog: `Gfx_Inventory_HealthStatusDraw` regression fix","measures":{"fuzzy_match_percent":22.463678,"total_code":2879592,"matched_code":641520,"matched_code_percent":22.278156,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-22T18:41:34Z","commit_sha":"bc64de439e56809cc3daf544c2cc74f0fd73f370","commit_message":"bodyprog:  regresion fix","measures":{"fuzzy_match_percent":22.463678,"total_code":2879592,"matched_code":641520,"matched_code_percent":22.278156,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3377,"matched_functions_percent":51.651882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-22T14:52:25Z","commit_sha":"1c49b07380f72159f128b361165799b270743a95","commit_message":"Move remaining event functions to map0_s01_events.c (#270)","measures":{"fuzzy_match_percent":22.462856,"total_code":2879592,"matched_code":639204,"matched_code_percent":22.197727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-22T13:48:36Z","commit_sha":"6f766a7267dcb0c34b2f6a0600895cd5e044ea27","commit_message":"Deobfuscate func_800DC9C8 (#269)\n\nThanks to emoose for inline function trick.","measures":{"fuzzy_match_percent":22.462856,"total_code":2879592,"matched_code":639204,"matched_code_percent":22.197727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":99,"complete_units":0}},{"timestamp":"2025-08-22T12:22:57Z","commit_sha":"be2ef53fa778057d40e10e52c4ec7d5510decab7","commit_message":"Match `func_80037A4C`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.462856,"total_code":2879592,"matched_code":639204,"matched_code_percent":22.197727,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-22T09:21:31Z","commit_sha":"faf0084b41cf9417fd8c717a1bb9cb4d5da745f3","commit_message":"Demagic spawn values","measures":{"fuzzy_match_percent":22.44452,"total_code":2879592,"matched_code":638676,"matched_code_percent":22.179392,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-22T07:17:38Z","commit_sha":"736f186d9273f122546ada6540c0281a589de486","commit_message":"Actually fix regression","measures":{"fuzzy_match_percent":22.44452,"total_code":2879592,"matched_code":638676,"matched_code_percent":22.179392,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-22T07:15:57Z","commit_sha":"d9f7d757370b224ec379ea7570cfb4c3722051f0","commit_message":"Fix regression","measures":{"fuzzy_match_percent":22.443718,"total_code":2879592,"matched_code":638676,"matched_code_percent":22.179392,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-22T07:05:28Z","commit_sha":"b20169803cda6aa80f102caf62e4426b24fc98b4","commit_message":"Fix regressions","measures":{"fuzzy_match_percent":22.442896,"total_code":2879592,"matched_code":638676,"matched_code_percent":22.179392,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-22T05:41:05Z","commit_sha":"644c6867ae67e472606be90e1c27ee5cb835cc79","commit_message":"Add docs, demagicking","measures":{"fuzzy_match_percent":22.441105,"total_code":2879592,"matched_code":629756,"matched_code_percent":21.869627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3374,"matched_functions_percent":51.605995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-22T04:30:04Z","commit_sha":"e9e78500abfc3bad389e9a84504a6c74e7be54a1","commit_message":"Add `Savegame_EventFlagSetAlt`\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.441105,"total_code":2879592,"matched_code":629756,"matched_code_percent":21.869627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3374,"matched_functions_percent":51.605995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-22T04:16:57Z","commit_sha":"add99278dc0213e7cc1da437f15d3b6f564df811","commit_message":"Docs, tidying","measures":{"fuzzy_match_percent":22.441105,"total_code":2879592,"matched_code":629756,"matched_code_percent":21.869627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3374,"matched_functions_percent":51.605995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T19:50:22Z","commit_sha":"2af97cfe294f58c1247e6254ea477077e940a2d2","commit_message":"bodyprog: Item/MapMsg code deobfuscation (#265)","measures":{"fuzzy_match_percent":22.441105,"total_code":2879592,"matched_code":629756,"matched_code_percent":21.869627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3374,"matched_functions_percent":51.605995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T17:13:48Z","commit_sha":"7593e936acf395ed623cc925cab63939b7c8f3ea","commit_message":"map0_s01: match `func_800DBAA0`\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.441105,"total_code":2879592,"matched_code":629756,"matched_code_percent":21.869627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3374,"matched_functions_percent":51.605995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T15:55:13Z","commit_sha":"e5411fa2ca2f769af7f46fdf87ed297c8a020456","commit_message":"Update RNG macros","measures":{"fuzzy_match_percent":22.36401,"total_code":2879592,"matched_code":627536,"matched_code_percent":21.79253,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T14:36:17Z","commit_sha":"bb4cebb18f6248df2600c13c5573f9b042c76b3b","commit_message":"Unroll player properties array","measures":{"fuzzy_match_percent":22.366457,"total_code":2879592,"matched_code":629852,"matched_code_percent":21.87296,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3374,"matched_functions_percent":51.605995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T12:58:00Z","commit_sha":"80dfaadd47a76df4655c94c0d96b7e18af134850","commit_message":"Formatting","measures":{"fuzzy_match_percent":22.366457,"total_code":2879592,"matched_code":629852,"matched_code_percent":21.87296,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3374,"matched_functions_percent":51.605995,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T09:22:15Z","commit_sha":"6dbcf67fd9ee94f2698284eb092bd9d72e8adb65","commit_message":"bodyprog data migration (#264)\n\n* bodyprog data migration\n\n* more stuff\n\n* delete the FILTHY lie (that i made)\n\n* MapMsg_Draw return codes enum\n\n* More bodyprog data migration to C\n\n* g_BackgroundColor","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T09:13:02Z","commit_sha":"34ed2d002f0289ac856f201ac7297d4ad6a1dfa1","commit_message":"`bool` conversions","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-21T05:08:14Z","commit_sha":"037aa693a3dbc6b8475b818566db3704283c31e3","commit_message":"Fixups, change some `do-while` to `while`/`for`\n\nSeems `if (x) do {} while(x)` can usually be matched as `while(x)` or a\nfor loop","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T23:28:03Z","commit_sha":"1e53b08c334a011a134ec5f967fedde1f1617d0a","commit_message":"Cleanup some unneeded local vars","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T21:24:35Z","commit_sha":"997040883ffad3e63eaef43e2c9382275501fa5c","commit_message":"bodyprog: more SysState fixups, stream minor fixup","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T21:10:45Z","commit_sha":"be451ef96f6fe2e957b59a6cc52092178b1b647a","commit_message":"Use SysState enum in `SysWork_StateSetNext` calls","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T18:44:36Z","commit_sha":"a468584e30d43ef433ca91038853a0a346fd9fd4","commit_message":"bodyprog: add `s_PlmHeader*` to `s_800BCE18_0_CC`","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T18:23:46Z","commit_sha":"12f773464aee48314e994ba3c1b7cb9e28b78071","commit_message":"options: build fix\n\nprobably should have reenabled `BUILD_SCREENS` after editing options :P","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T18:17:32Z","commit_sha":"fd274dcab2aad8b0bc1301eff689b592ee563da0","commit_message":"bodyprog: more state check fixups, change some AND to MOD","measures":{"fuzzy_match_percent":22.363882,"total_code":2879592,"matched_code":637088,"matched_code_percent":22.124247,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T17:39:45Z","commit_sha":"e419814a130474cf8ee339a2de8b0f1ecacae50a","commit_message":"bodyprog: redo sysState fixup","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T17:21:08Z","commit_sha":"ce9be3a63cb1ab264e3aef8db50edc1f15f3d951","commit_message":"bodyprog: small japanglish fixups","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T16:42:56Z","commit_sha":"6fbdcfa5f6829d3dfd02288feeb19c94f5cfc0a9","commit_message":"Expand camera glossary","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T16:35:57Z","commit_sha":"9035c17e4cfef5330bcf2dbf847d469c09fcf482","commit_message":"Add glossary of Japanglish terms for camera system","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T13:14:23Z","commit_sha":"b290cac58ad5777ff82cdce5dcab158d56ce02a9","commit_message":"`bool` conversions","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T12:08:04Z","commit_sha":"31ec1de4951269863e68cac9d3182fd79178d347","commit_message":"Minor changes","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T11:56:13Z","commit_sha":"0e80f7ae223e339cd7566a1ea65162771713bf5e","commit_message":"Add `SysWork_NextStateStepSet` and `SysWork_StateStepReset`, use sysState inlines","measures":{"fuzzy_match_percent":22.368248,"total_code":2879592,"matched_code":638772,"matched_code_percent":22.182726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T07:21:03Z","commit_sha":"031d4a31d78f0be0bbab2d30755084e49a173f1c","commit_message":"Add the last null entry to g_AnimInfo (#263)","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T07:18:26Z","commit_sha":"02e3069d79b8ef03f866345b3f3fac7d700b58e4","commit_message":"SysState_MapScreen (#262)","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T07:09:13Z","commit_sha":"ac496bf2faca6220b2d2fa61a61706474de92433","commit_message":"Rename sin/cos funcs and add doc comments","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T06:23:19Z","commit_sha":"cc9ee575327ed672464a6c8c0e581a144d00f82a","commit_message":"map0_s01: name event funcs","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T03:58:13Z","commit_sha":"15842bccbd89f76f59a8c06ea5a77aef5c405e78","commit_message":"Name some variables, tidying pass","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T01:38:49Z","commit_sha":"277285d5d65416e6ee844f5ac491067051443f29","commit_message":"LoadSHFuncdefs.py: sharedFunc support, create funcs if not exist","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-20T00:28:57Z","commit_sha":"e8f865f7c7bc2cdbc4898899a232d21fe32a75c4","commit_message":"Analysis Guide: add section for loading structs/funcdefs into Ghidra","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T22:07:55Z","commit_sha":"2292c459a83cff44d17e766542c9aefcfdf2fa52","commit_message":"bodyprog: minor fixups","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T22:02:00Z","commit_sha":"3f65a8069f5e7a315fb502cecc868f37d0a71b1e","commit_message":"bodyprog: rodata migrate `func_8008A270` and `func_8008A2E0`","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T20:06:29Z","commit_sha":"a3723060bbf8516abae0c3c0d7323006fcf9e574","commit_message":"more info for s_MapOverlayHeader (#261)","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T18:11:12Z","commit_sha":"48e4301aabb5af5dba2fe1d4d7cbc61a7c5d1250","commit_message":"bodyprog: rodata migrate `func_8008973C` and `D_8002AF04`","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T17:06:19Z","commit_sha":"393a77da7725f9c7df55c660fe490ff405966cdf","commit_message":"maps: build fix","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T16:50:38Z","commit_sha":"5d6893a6a25f964528dd307be9318b9b5664b2c2","commit_message":"Cleanup map0_s00 header and related (#260)","measures":{"fuzzy_match_percent":22.36672,"total_code":2879592,"matched_code":638728,"matched_code_percent":22.181198,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6552,"matched_functions":3375,"matched_functions_percent":51.51099,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T16:47:30Z","commit_sha":"9dc313ceb71aa1984ae3446a78aa63e42b6b203c","commit_message":"Bodyprog: match func_80070B84 (#258)\n\nCo-authored-by: Frozen Burnside <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.37186,"total_code":2879592,"matched_code":638876,"matched_code_percent":22.186337,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3376,"matched_functions_percent":51.63659,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T14:12:43Z","commit_sha":"d65d7d4e8ee10dae471160999188d5783b212294","commit_message":"Name pickup item funcs","measures":{"fuzzy_match_percent":22.359219,"total_code":2879592,"matched_code":638512,"matched_code_percent":22.173697,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T08:23:49Z","commit_sha":"4afc6cc5fd88ab67f9e5f24e799b27bcb7f2da57","commit_message":"Deobfuscate an item pickup function","measures":{"fuzzy_match_percent":22.359219,"total_code":2879592,"matched_code":638512,"matched_code_percent":22.173697,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-19T02:33:04Z","commit_sha":"2142369dc05e7e187ba732eb3e8b7d947e06112a","commit_message":"bodyprog: remove dupe struct, migrate more of `D_8002AC04`","measures":{"fuzzy_match_percent":22.359219,"total_code":2879592,"matched_code":638512,"matched_code_percent":22.173697,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T22:57:58Z","commit_sha":"e62a963b5e7a1c79a0621b28bb5c3c53f486232e","commit_message":"bodyprog: rodata migrate `func_80087AF4`, start on `D_8002AC04` migrate","measures":{"fuzzy_match_percent":22.359219,"total_code":2879592,"matched_code":638512,"matched_code_percent":22.173697,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T21:06:24Z","commit_sha":"5efac6cf7dbed855d4f61d42a71888312b03dd45","commit_message":"Bodyprog: Matched 2 functions (#257)\n\n* Bodyprog: Matched func_8006BE40\n\n* Bodyprog: Matched func_8006F99C\n\n---------\n\nCo-authored-by: Sezz <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.359219,"total_code":2879592,"matched_code":638512,"matched_code_percent":22.173697,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3375,"matched_functions_percent":51.62129,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T18:18:20Z","commit_sha":"0ac95e0a10f8a30a0d1f35a484a8ceea068bb0e6","commit_message":"bodyprog: warning/type fixups","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T17:48:23Z","commit_sha":"9af4f2957d2ba2fc3095702cf54efd8055cf2ee0","commit_message":"bodyprog: migrate `func_8007F14C`","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T14:39:37Z","commit_sha":"285e07d481d7621679840bd0a4b9b43986a91bc3","commit_message":"Options docs (#256)\n\n* Add docs and change names\n\n* Demagic switch\n\n* Fix GPU macros\n\n* Fix build error, add scratch links","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T06:19:32Z","commit_sha":"f15aedc26ad1e8e77927e104c9fb6e9dc9eae463","commit_message":"`bool` conversions","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T05:42:34Z","commit_sha":"66f271ce4913c799d498cdabd688e833a1bc1d4b","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-18T01:37:15Z","commit_sha":"bf76518dd451595221c6dfdd16ff69ace7ebe6ee","commit_message":"Update model structs inside bodyprog.h (#254)\n\nUpdate model structs inside bodyprog.h","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T20:05:23Z","commit_sha":"b06a38e614a79da204478d2a476c66917f019398","commit_message":"map0_s00 header to C (#253)","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T19:28:54Z","commit_sha":"43e96d4c24c34b0e307dcb9bab19af14df6ba361","commit_message":"bodyprog: type fixups, remove `s_800C4620`","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T19:12:57Z","commit_sha":"b9aa272c3762dd8fa09c8c5e44355f8a4eccbc34","commit_message":"name few things in main menu and save (#252)","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T18:14:08Z","commit_sha":"e17bac87b2cc0ef0cefd1e9a6ea650acbf2d543b","commit_message":"bodyprog: type fixups\n\n`func_80042178` still needs work\n(passes different kinds of struct to `func_8005B4BC`)\n\n`extern s_800C4620 D_800C4620` might be `s_func_800699F8` coll struct instead","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T16:22:06Z","commit_sha":"0f020bb3e697f639f7173f70e73772e07d5f4b91","commit_message":"bodyprog: change `func_80041D10` arg type","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T16:20:56Z","commit_sha":"83db0bcd9ad7ee5628ce648db901f7a704ef2bf3","commit_message":"bodyprog: change `func_80041D10` arg type","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T15:36:38Z","commit_sha":"a7f07eececc666f0c3f906b5393b6591ba95d215","commit_message":"bodyprog: remove dupe structs\n\ns_800C1020_138 -> s_PlmHeader\ns_800C1020_138_4 -> s_PlmTexList\ns_800C1020_138_4_8 -> s_PlmTexList_8","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T14:53:15Z","commit_sha":"3c93ec9a07b4621ae25d59986199b04ce3a0a2ee","commit_message":"bodyprog: name 3 funcs","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T14:34:21Z","commit_sha":"c68cf36744453cf13d7c84fc899831fe856e10c6","commit_message":"bodyprog: add `s_IpdColData`, remove dupe structs, fixups\n\ns_80041CEC -> s_PlmHeader\n\ns_80043E50 -> s_IpdHeader\n\ns_func_800699E4 -> s_IpdColData\n\ns_80043BA4 -> s_IpdColData\n\ns_80043F2C -> u_Filename\n\ns_80043E50Sub -> s_IpdModelInfo","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T10:01:15Z","commit_sha":"913ecf54a03d9365f2c9f21722cdfaf442ca728b","commit_message":"options: convert screen position values","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T07:55:07Z","commit_sha":"fd656a23776bf55510e75733f9f43317cfd06e4a","commit_message":"Update constants","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T04:06:03Z","commit_sha":"424e50147c9740f26bd3f487285f26f89dcd1961","commit_message":"Name parameters, minor changes","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-17T01:26:59Z","commit_sha":"5cba767c27f005ca5d7fba79347bc549db32d066","commit_message":"bodyprog: `s_80043B70` -> `s_IpdHeader`, match 2 funcs","measures":{"fuzzy_match_percent":22.335604,"total_code":2879592,"matched_code":637832,"matched_code_percent":22.150084,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3373,"matched_functions_percent":51.5907,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T23:41:43Z","commit_sha":"d22e7e980100743141317118be75d1005c782a69","commit_message":"bodyprog: match `func_80056CB4`, add `u_Filename` union\n\nhad to add `u_Filename` for the string compare inside `func_80056CB4`,\nnot a huge fan of it though, if a better way can be found I'd be happy\nto get rid of it..","measures":{"fuzzy_match_percent":22.326576,"total_code":2879592,"matched_code":637572,"matched_code_percent":22.141052,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3371,"matched_functions_percent":51.56011,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T22:47:05Z","commit_sha":"231d97c17df03f54ce75c8c52bc423ab3c5637a7","commit_message":"bodyprog: match `ObjList_FixOffsets`","measures":{"fuzzy_match_percent":22.320463,"total_code":2879592,"matched_code":637396,"matched_code_percent":22.134941,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3370,"matched_functions_percent":51.544815,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T22:34:56Z","commit_sha":"81fc3a99ae466f018a9d839bf40640194f5a80b6","commit_message":"bodyprog: rename `s_800BE9FC` to `s_PlmHeader`, name some related funcs","measures":{"fuzzy_match_percent":22.314907,"total_code":2879592,"matched_code":637236,"matched_code_percent":22.129385,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3369,"matched_functions_percent":51.529522,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T22:32:10Z","commit_sha":"f090013aa8cd41c02e0a5cb5f9f242a9eb0e626f","commit_message":"Main menu options/difficulty deobfuscation (#251)","measures":{"fuzzy_match_percent":22.314907,"total_code":2879592,"matched_code":637236,"matched_code_percent":22.129385,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3369,"matched_functions_percent":51.529522,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T20:34:23Z","commit_sha":"496501fcdf513701a495971559d5b3ea8d4c5bf8","commit_message":"bodyprog: remove `s_func_8005A21C`","measures":{"fuzzy_match_percent":22.314907,"total_code":2879592,"matched_code":637236,"matched_code_percent":22.129385,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3369,"matched_functions_percent":51.529522,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T20:20:53Z","commit_sha":"c32e958e355f6bde09e44387d644e2244a71a1c3","commit_message":"bodyprog: fixups, remove duplicate structs\n\nchanged some string ptrs from s8 to char","measures":{"fuzzy_match_percent":22.314907,"total_code":2879592,"matched_code":637236,"matched_code_percent":22.129385,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3369,"matched_functions_percent":51.529522,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T18:26:46Z","commit_sha":"127a4b2a102d94d833829f1bfac46f489a4166c7","commit_message":"bodyprog: match 4 funcs","measures":{"fuzzy_match_percent":22.314907,"total_code":2879592,"matched_code":637236,"matched_code_percent":22.129385,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3369,"matched_functions_percent":51.529522,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T13:24:36Z","commit_sha":"c02d0512371934bf802767023c036ac344e7e4d1","commit_message":"bodyprog: match `func_80056BF8` `func_80056C80`\n\nSize of s_800C1020_138_4 is known thanks to func_80056BF8 loop","measures":{"fuzzy_match_percent":22.274763,"total_code":2879592,"matched_code":636080,"matched_code_percent":22.08924,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3365,"matched_functions_percent":51.468338,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T10:32:11Z","commit_sha":"d2fc7a82f247d0c7c1fa56d9ab4058143e9d6cde","commit_message":"match func_800550D0 func_8005545C func_80055490 func_800554C4 (#250)\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.269623,"total_code":2879592,"matched_code":635932,"matched_code_percent":22.0841,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3363,"matched_functions_percent":51.437748,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-16T09:44:36Z","commit_sha":"de950dbf044026f02d1535d4d0a183a8921d7d2d","commit_message":"Analysis Guide: add section about .rodata/code offset mismatches","measures":{"fuzzy_match_percent":22.231422,"total_code":2879592,"matched_code":634832,"matched_code_percent":22.045902,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3359,"matched_functions_percent":51.376568,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-15T22:56:06Z","commit_sha":"d8863ea1e0b0fb0ef469e52eba71624a7e483b65","commit_message":"Bodyprog: Matched func_8006F250 (#249)\n\n* Bodyprog: Matched func_8006F250\n\n* Add comment","measures":{"fuzzy_match_percent":22.231422,"total_code":2879592,"matched_code":634832,"matched_code_percent":22.045902,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3359,"matched_functions_percent":51.376568,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-15T11:42:09Z","commit_sha":"717335676a506f26081c8bd816c4f376217f76b2","commit_message":"Minor changes","measures":{"fuzzy_match_percent":22.223366,"total_code":2879592,"matched_code":634600,"matched_code_percent":22.037844,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3358,"matched_functions_percent":51.361275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-15T10:28:13Z","commit_sha":"77cead3de19825950d3018222eef2c99a5149752","commit_message":"match func_800802CC func_8007FC48 func_8007FB94 func_8007F32C (#248)\n\nCo-authored-by: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.223366,"total_code":2879592,"matched_code":634600,"matched_code_percent":22.037844,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3358,"matched_functions_percent":51.361275,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-15T07:02:37Z","commit_sha":"50ec2b9bb52317cc15bd0c30a72c2219fdf34593","commit_message":"Add `FP_ALPHA_NORM` macro func, some demagicking","measures":{"fuzzy_match_percent":22.148077,"total_code":2879592,"matched_code":632432,"matched_code_percent":21.962557,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3354,"matched_functions_percent":51.30009,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T22:33:53Z","commit_sha":"749c2aaf81b3a6fe70c94ad927618eb141ca81cd","commit_message":"bodyprog: match 3 funcs","measures":{"fuzzy_match_percent":22.148077,"total_code":2879592,"matched_code":632432,"matched_code_percent":21.962557,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3354,"matched_functions_percent":51.30009,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T18:59:04Z","commit_sha":"e6db6b9dece16934f1c30deb7be8783fa3ef4324","commit_message":"Demagicking pass","measures":{"fuzzy_match_percent":22.122103,"total_code":2879592,"matched_code":631684,"matched_code_percent":21.93658,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3351,"matched_functions_percent":51.254208,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T18:24:23Z","commit_sha":"7b9167565b435dcf8812da126bf413f6b63b9d56","commit_message":"map3_s02: Match `func_800CE5F0`, start save/load enums","measures":{"fuzzy_match_percent":22.122103,"total_code":2879592,"matched_code":631684,"matched_code_percent":21.93658,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3351,"matched_functions_percent":51.254208,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T14:20:12Z","commit_sha":"7b179d892c8afe4523b4e7bf4cdfc9deb72a7a42","commit_message":"VC: use `bool`","measures":{"fuzzy_match_percent":22.115156,"total_code":2879592,"matched_code":631484,"matched_code_percent":21.929636,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3350,"matched_functions_percent":51.23891,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T12:06:58Z","commit_sha":"f9761298c5b94af04f9efcd2a6f60e8398b57ad2","commit_message":"Move local var decls to top, use angle macros","measures":{"fuzzy_match_percent":22.115156,"total_code":2879592,"matched_code":631484,"matched_code_percent":21.929636,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3350,"matched_functions_percent":51.23891,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T11:51:06Z","commit_sha":"bb645f8674af3eb9312f233993aba7e4fcee9f1e","commit_message":"Define FP_ANGLE_NORM_S` and `FP_ANGLE_NORM_U` macros","measures":{"fuzzy_match_percent":22.115156,"total_code":2879592,"matched_code":631484,"matched_code_percent":21.929636,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3350,"matched_functions_percent":51.23891,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T10:52:59Z","commit_sha":"f8ebf8dd572b7657a0a65ee4fc973af2588dd1b6","commit_message":"Match `func_8007FB34` as `Math_ShortestAngle`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.115156,"total_code":2879592,"matched_code":631484,"matched_code_percent":21.929636,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3350,"matched_functions_percent":51.23891,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T10:00:36Z","commit_sha":"7d2e2084c0123fed9542df1d31b058cf7c6c5ce8","commit_message":"Name parameters","measures":{"fuzzy_match_percent":22.111822,"total_code":2879592,"matched_code":631388,"matched_code_percent":21.9263,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3349,"matched_functions_percent":51.223618,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T08:45:47Z","commit_sha":"1cbaadf49ba01a1fefbcef5fdb49ccc3fd1b3b7e","commit_message":"Update bodyprog_80085D78.c","measures":{"fuzzy_match_percent":22.111822,"total_code":2879592,"matched_code":631388,"matched_code_percent":21.9263,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3349,"matched_functions_percent":51.223618,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T06:36:01Z","commit_sha":"09d2daabe8e8520eaebd2da8deb85c9dc6d9ee17","commit_message":"bodyprog: `func_80071CE8` match\n\nAlso did some symbol recognition work.\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":22.111822,"total_code":2879592,"matched_code":631388,"matched_code_percent":21.9263,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3349,"matched_functions_percent":51.223618,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-14T00:40:16Z","commit_sha":"1d122921c814cddefbdfcbec53b0195784336dd9","commit_message":"bodyprog: match `func_80057228`","measures":{"fuzzy_match_percent":21.802057,"total_code":2879592,"matched_code":622468,"matched_code_percent":21.616535,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3348,"matched_functions_percent":51.208324,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T23:38:49Z","commit_sha":"0229002daf0f3938c8d49f087ff4aad243fc50c1","commit_message":"Match func_8008F94C (#247)\n\nCo-authored-by: fmil95 <fmil95@users.noreply.github.com>\nCo-authored-by: Lovey847 <87508305+lovey847@users.noreply.github.com>\nCo-authored-by: Mc-muffin <Mc-muffin@users.noreply.github.com>","measures":{"fuzzy_match_percent":21.792194,"total_code":2879592,"matched_code":622184,"matched_code_percent":21.606672,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3347,"matched_functions_percent":51.193024,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T23:28:03Z","commit_sha":"126b4973c8f92c142143fd45fbf407f3d89ed782","commit_message":"Rename `s_func_8005759C` -> `s_ObjHeader`, closer to Sparagas' `sh1_models_draft.bt`","measures":{"fuzzy_match_percent":21.688568,"total_code":2879592,"matched_code":619200,"matched_code_percent":21.503046,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3346,"matched_functions_percent":51.177727,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T22:54:58Z","commit_sha":"2e327b00c8584d2122d3e750f04bd877ec213059","commit_message":"bodyprog: match `func_8005A900`","measures":{"fuzzy_match_percent":21.688568,"total_code":2879592,"matched_code":619200,"matched_code_percent":21.503046,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3346,"matched_functions_percent":51.177727,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T19:19:15Z","commit_sha":"c12918ad1448b87cc04a1788237895289d814119","commit_message":"Bodyprog: Matched func_8005B1A0 (#246)","measures":{"fuzzy_match_percent":21.6794,"total_code":2879592,"matched_code":618936,"matched_code_percent":21.49388,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3345,"matched_functions_percent":51.162434,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T16:07:03Z","commit_sha":"6c8e4a7a2ccd7e974add8689ea31454722755ca9","commit_message":"Match `func_8006D7EC`","measures":{"fuzzy_match_percent":21.676205,"total_code":2879592,"matched_code":618844,"matched_code_percent":21.490683,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3344,"matched_functions_percent":51.14714,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T12:53:06Z","commit_sha":"f487450611a5052af23231b91c004b9e41d3ccac","commit_message":"Match `func_8006C1B8`","measures":{"fuzzy_match_percent":21.666204,"total_code":2879592,"matched_code":618556,"matched_code_percent":21.480682,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3343,"matched_functions_percent":51.131844,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T06:35:12Z","commit_sha":"955e76117ac52ec46106fb7f79afd5d5c967607a","commit_message":"Minor changes","measures":{"fuzzy_match_percent":21.661203,"total_code":2879592,"matched_code":618412,"matched_code_percent":21.475681,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3342,"matched_functions_percent":51.11655,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T05:34:33Z","commit_sha":"8bb427c61fb6d12bd4f02e47c1973e1149a35ef2","commit_message":"map0_s01: matched func_800D3814 (#243)","measures":{"fuzzy_match_percent":21.661203,"total_code":2879592,"matched_code":618412,"matched_code_percent":21.475681,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3342,"matched_functions_percent":51.11655,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T05:18:19Z","commit_sha":"33e4e726df294f71f8e006311babb1d60c512cf3","commit_message":"Func 800 d5274 (#245)\n\n* map0_s01: match func_800D5274\n\n* newline cleanup","measures":{"fuzzy_match_percent":21.603695,"total_code":2879592,"matched_code":616756,"matched_code_percent":21.418173,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3336,"matched_functions_percent":51.024776,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T05:17:12Z","commit_sha":"38363d83e532f0e35e890ce3fff60d1250903e72","commit_message":"Options: deobfuscation progress 5","measures":{"fuzzy_match_percent":21.59536,"total_code":2879592,"matched_code":616516,"matched_code_percent":21.409838,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3330,"matched_functions_percent":50.93301,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-13T00:17:35Z","commit_sha":"fd214578857554208c54dee7ed6cf68c0a1d39c0","commit_message":"bodyprog: match 2 funcs","measures":{"fuzzy_match_percent":21.59536,"total_code":2879592,"matched_code":616516,"matched_code_percent":21.409838,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3330,"matched_functions_percent":50.93301,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T19:14:48Z","commit_sha":"dd32fafaeba9792ca6a8b7685cf2b6716dd964c4","commit_message":"Bodyprog: Matched func_8006B6E8 (#244)","measures":{"fuzzy_match_percent":21.527435,"total_code":2879592,"matched_code":614560,"matched_code_percent":21.341913,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3328,"matched_functions_percent":50.902412,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T16:26:27Z","commit_sha":"7ed440579b6f5c0dfd07fbd7f5caac185ce8b2d3","commit_message":"Match `func_80070400`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":21.518822,"total_code":2879592,"matched_code":614312,"matched_code_percent":21.3333,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3327,"matched_functions_percent":50.88712,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T16:09:34Z","commit_sha":"3fc00589e8947001e2162900f37950d8445e25d9","commit_message":"Options: deobfuscation progress 4","measures":{"fuzzy_match_percent":21.502014,"total_code":2879592,"matched_code":613828,"matched_code_percent":21.316492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3326,"matched_functions_percent":50.871826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T12:37:15Z","commit_sha":"5b6cbc00a6e71d808426d2d20b39a9465346897e","commit_message":"Options: deobfuscation progress 3","measures":{"fuzzy_match_percent":21.502014,"total_code":2879592,"matched_code":613828,"matched_code_percent":21.316492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3326,"matched_functions_percent":50.871826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T09:39:52Z","commit_sha":"eb53e58927dda535489eabe77462c12eec265efc","commit_message":"Options: deobfuscation progress 2","measures":{"fuzzy_match_percent":21.502014,"total_code":2879592,"matched_code":613828,"matched_code_percent":21.316492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3326,"matched_functions_percent":50.871826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T03:59:44Z","commit_sha":"b77d67b62d4d025c3b8d18a782b212c6d290fe3c","commit_message":"`bool` conversions","measures":{"fuzzy_match_percent":21.502014,"total_code":2879592,"matched_code":613828,"matched_code_percent":21.316492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3326,"matched_functions_percent":50.871826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T03:43:06Z","commit_sha":"f2b2c5d8fc2c405ea1c0ed3c9096b486b6d30f45","commit_message":"Options: deobfuscation progress","measures":{"fuzzy_match_percent":21.502014,"total_code":2879592,"matched_code":613828,"matched_code_percent":21.316492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3326,"matched_functions_percent":50.871826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T00:45:09Z","commit_sha":"72cab0f15cfeefa870ea6c3843820b0555886fca","commit_message":"bodyprog: fixups, pass `D_800C4168` size to splat","measures":{"fuzzy_match_percent":21.502014,"total_code":2879592,"matched_code":613828,"matched_code_percent":21.316492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3326,"matched_functions_percent":50.871826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-12T00:13:53Z","commit_sha":"fb685273e6500dc73b92cfe6caac1ee4acced70e","commit_message":"bodyprog: match `func_8005A21C`, add `s_GteScratchData`","measures":{"fuzzy_match_percent":21.502014,"total_code":2879592,"matched_code":613828,"matched_code_percent":21.316492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3326,"matched_functions_percent":50.871826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T22:55:33Z","commit_sha":"39357add9818261e9399f88a0aa95cbc530c2702","commit_message":"bodyprog: match 2 funcs","measures":{"fuzzy_match_percent":21.483679,"total_code":2879592,"matched_code":613300,"matched_code_percent":21.298157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3325,"matched_functions_percent":50.85653,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T21:25:34Z","commit_sha":"623df6e04b6cee8ab4cc92e1e3e1a05ef6cda8cd","commit_message":"bodyprog: match `func_80057A3C`","measures":{"fuzzy_match_percent":21.458813,"total_code":2879592,"matched_code":612584,"matched_code_percent":21.27329,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3323,"matched_functions_percent":50.825943,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T20:23:48Z","commit_sha":"9f8f65eee0b2f69a2518e8e5389d034d4445a902","commit_message":"Update bodyprog.yaml (#242)\n\nForgot to remove one empty line...","measures":{"fuzzy_match_percent":21.4477,"total_code":2879592,"matched_code":612264,"matched_code_percent":21.262178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3322,"matched_functions_percent":50.810646,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T19:33:42Z","commit_sha":"f192053e7d71e838e1b844ced8f29552cc167546","commit_message":"Bodyprog: Matched func_80043A24 (#241)","measures":{"fuzzy_match_percent":21.4477,"total_code":2879592,"matched_code":612264,"matched_code_percent":21.262178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3322,"matched_functions_percent":50.810646,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T19:21:22Z","commit_sha":"52cb5052b8984a24d211df84f122496d53a795e8","commit_message":"bodyprog: match 3 funcs","measures":{"fuzzy_match_percent":21.438255,"total_code":2879592,"matched_code":611992,"matched_code_percent":21.252733,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3321,"matched_functions_percent":50.795353,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T16:14:13Z","commit_sha":"244601f1a2be4c699d0b997933ea588c62142290","commit_message":"map7_s02: match `func_800D9864`","measures":{"fuzzy_match_percent":21.421724,"total_code":2879592,"matched_code":611516,"matched_code_percent":21.236204,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3318,"matched_functions_percent":50.749462,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T14:14:45Z","commit_sha":"6cdcf84afaa22b6f6f50be713c25245fee7ab901","commit_message":"Match `func_80071968`\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":21.41728,"total_code":2879592,"matched_code":611388,"matched_code_percent":21.231756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3317,"matched_functions_percent":50.73417,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T12:38:38Z","commit_sha":"8d1e6ac2d3b991e9e3ccac1c9a58988309011e36","commit_message":"Match `func_80070208`","measures":{"fuzzy_match_percent":21.386164,"total_code":2879592,"matched_code":610492,"matched_code_percent":21.200642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3316,"matched_functions_percent":50.718872,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T09:56:28Z","commit_sha":"b3f6e54fe4a8900e6d4f6527216955997fb5c5d9","commit_message":"Match `func_8006FD90`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":21.381025,"total_code":2879592,"matched_code":610344,"matched_code_percent":21.195503,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3315,"matched_functions_percent":50.70358,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T09:52:27Z","commit_sha":"88b2f7da0bf2c2af89d88bfa27057f8d4ac5b81c","commit_message":"Match func_80073FC0 (#240)\n\nCo-authored-by: Sezz <65776527+Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":21.357689,"total_code":2879592,"matched_code":609672,"matched_code_percent":21.172165,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3314,"matched_functions_percent":50.688286,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T09:02:53Z","commit_sha":"4d66357eb02445e2c69d36bd90ed21f568f016ba","commit_message":"Demagicking","measures":{"fuzzy_match_percent":21.334768,"total_code":2879592,"matched_code":609012,"matched_code_percent":21.149246,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3313,"matched_functions_percent":50.67299,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T03:23:58Z","commit_sha":"376abcad92c7ceea897327c65d65a4e7d27a0087","commit_message":"bodyprog: match 3 funcs","measures":{"fuzzy_match_percent":21.334768,"total_code":2879592,"matched_code":609012,"matched_code_percent":21.149246,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6538,"matched_functions":3313,"matched_functions_percent":50.67299,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-11T03:17:43Z","commit_sha":"7936089ab86e69a48532072bfdcdc91dc68efbc9","commit_message":"bodyprog/maps: matches (#239)\n\n* bodyprog: Match func_8006D90C\n\n* map0_s01: matched func_800D2E04 and func_800D3430. Added FP_ANGLE_TRUNCATE_ABS\n\n* map0_s01: matched func_800D3630 and func_800D3758","measures":{"fuzzy_match_percent":21.311014,"total_code":2879592,"matched_code":608320,"matched_code_percent":21.125216,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3309,"matched_functions_percent":50.573135,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T23:11:29Z","commit_sha":"d2fb172563ad3d248d414cad54d1ef8e3c1c86f7","commit_message":"Match func_80075504, func_80074350, func_800771BC, func_80077BB8 (#238)\n\n* Match func_80075504 func_80074350 func_800771BC func_80077BB8\n\nCo-Authored-By: Sezz <65776527+Sezzary@users.noreply.github.com>\n\n* add symbol\n\n---------\n\nCo-authored-by: Sezz <65776527+Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":21.066397,"total_code":2879592,"matched_code":601276,"matched_code_percent":20.880596,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3284,"matched_functions_percent":50.191044,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T22:49:02Z","commit_sha":"d7b8de04ea1554068267eab78632dc95438f3d47","commit_message":"bodyprog: match 3 funcs","measures":{"fuzzy_match_percent":20.71093,"total_code":2879592,"matched_code":591040,"matched_code_percent":20.525131,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3281,"matched_functions_percent":50.14519,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T17:58:03Z","commit_sha":"96d591d8888253a5224820d4c946f0302a668c94","commit_message":"bodyprog: match `func_80088FF4`\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: pseregiet <patryk.seregiet@gmail.com>\nCo-Authored-By: Mc-muffin <Mc-muffin@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.701206,"total_code":2879592,"matched_code":590760,"matched_code_percent":20.515406,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3278,"matched_functions_percent":50.099342,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T17:22:43Z","commit_sha":"f65809ba1a28208d10b9086330c3cc02487f0eae","commit_message":"Bodyprog: Matched func_8008A0E4 (#237)","measures":{"fuzzy_match_percent":20.698984,"total_code":2879592,"matched_code":590696,"matched_code_percent":20.513184,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3277,"matched_functions_percent":50.08406,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T16:58:14Z","commit_sha":"804b1f464e046af618b558ddb9f449f2244c8fab","commit_message":"Match `func_80070030`","measures":{"fuzzy_match_percent":20.685232,"total_code":2879592,"matched_code":590300,"matched_code_percent":20.499432,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3276,"matched_functions_percent":50.06878,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T15:31:49Z","commit_sha":"67c24315bcd58b7a9e87ec410cb96106c90413eb","commit_message":"Add `FP_ANGLE_TRUNCATE` func macro, move buffer macros to be with the others","measures":{"fuzzy_match_percent":20.681204,"total_code":2879592,"matched_code":590184,"matched_code_percent":20.495403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3275,"matched_functions_percent":50.053493,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T10:32:25Z","commit_sha":"17cfe10bbcb2fdd9aa01162b888c38241c525b23","commit_message":"Demagicking","measures":{"fuzzy_match_percent":20.681204,"total_code":2879592,"matched_code":590184,"matched_code_percent":20.495403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3275,"matched_functions_percent":50.053493,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T07:01:11Z","commit_sha":"cf663dac11f789661bb998f37655a4184985ac25","commit_message":"Format config YAML files (#236)\n\n- convert all hex values from lowercase to uppercase.\n- all section separation comment.\n- format `lib_externs.ld`.","measures":{"fuzzy_match_percent":20.681204,"total_code":2879592,"matched_code":590184,"matched_code_percent":20.495403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3275,"matched_functions_percent":50.053493,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T06:46:57Z","commit_sha":"e50d7cdd872bafc952538a22f3c67ed8305ee10f","commit_message":"Symbol recognition","measures":{"fuzzy_match_percent":20.681204,"total_code":2879592,"matched_code":590184,"matched_code_percent":20.495403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3275,"matched_functions_percent":50.053493,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T04:56:34Z","commit_sha":"f12f4aaa0d74b008b2798e0b9608f8bbf98e9e15","commit_message":"Add separate `FP_MULTIPLY_PRECISE` math macro","measures":{"fuzzy_match_percent":20.678843,"total_code":2879592,"matched_code":590116,"matched_code_percent":20.493042,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3273,"matched_functions_percent":50.022923,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T00:46:27Z","commit_sha":"e879134d82a458f8cfdeecaacbc5d187923a79a6","commit_message":"maps: share `sharedFunc_800D81B0_0_s01`","measures":{"fuzzy_match_percent":20.678843,"total_code":2879592,"matched_code":590116,"matched_code_percent":20.493042,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3273,"matched_functions_percent":50.022923,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-10T00:44:12Z","commit_sha":"6371a0d147e7caeb9623e3ce656ed66b282358c8","commit_message":"Matched func_8008037C as Math_Distance2d (#235)","measures":{"fuzzy_match_percent":20.673286,"total_code":2879592,"matched_code":589956,"matched_code_percent":20.487486,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3268,"matched_functions_percent":49.946507,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-09T17:11:41Z","commit_sha":"67683e80bed00cc20a0bb76f100a2cbd2df7e104","commit_message":"bodyprog: pass `s_800AFC78` size to splat","measures":{"fuzzy_match_percent":20.66884,"total_code":2879592,"matched_code":589828,"matched_code_percent":20.48304,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3267,"matched_functions_percent":49.931225,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-09T16:54:10Z","commit_sha":"74aa0ad49b0bad246323ed0496f235b0693238a6","commit_message":"Match `func_8008076C`\n\nCo-Authored-By: pseregiet <patryk.seregiet@gmail.com>\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>\nCo-Authored-By: poly <47796739+polybiusproxy@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.66884,"total_code":2879592,"matched_code":589828,"matched_code_percent":20.48304,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3267,"matched_functions_percent":49.931225,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-09T08:53:35Z","commit_sha":"79c98be87f1d6d481d25c15a0d723999f9d74fbe","commit_message":"Stray tabs -> spaces, remove `Sh` prefixes","measures":{"fuzzy_match_percent":20.659117,"total_code":2879592,"matched_code":589548,"matched_code_percent":20.473316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3266,"matched_functions_percent":49.91594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-09T07:17:15Z","commit_sha":"70f416d2d61a91a07c912d2c214d06e5f2dcd804","commit_message":"Match `func_8007FD4C`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.659117,"total_code":2879592,"matched_code":589548,"matched_code_percent":20.473316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3266,"matched_functions_percent":49.91594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-09T06:51:08Z","commit_sha":"d052a98832550d9c6ff51d07bb95355fa4d606e6","commit_message":"Use `bool` wherever appropriate","measures":{"fuzzy_match_percent":20.653976,"total_code":2879592,"matched_code":589400,"matched_code_percent":20.468178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3265,"matched_functions_percent":49.900658,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-09T05:25:21Z","commit_sha":"61b2761fc01d764805b673ba21bc5902eb0136bc","commit_message":"Use `bool`, comments","measures":{"fuzzy_match_percent":20.653976,"total_code":2879592,"matched_code":589400,"matched_code_percent":20.468178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3265,"matched_functions_percent":49.900658,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-08T20:04:30Z","commit_sha":"6ca1f7dff5af490aa450d02fb85c1227762381ec","commit_message":"Maps: Text data migration (#234)\n\n* rename map0_s00_3.c to map0_s00_msg.c\n\n* g_MapMessages for all map binaries","measures":{"fuzzy_match_percent":20.653976,"total_code":2879592,"matched_code":589400,"matched_code_percent":20.468178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3265,"matched_functions_percent":49.900658,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-08T14:38:25Z","commit_sha":"deb2633cf8d2a892e3d8e598c2856b4c6f8795fe","commit_message":"Bodyprog: Matched 2 functions (#233)\n\n* Bodyprog: Matched func_8005DC3C\n\n* Bodyprog: Matched func_8005DC3C, format\n\n* Bodyprog: Matched func_8005C814\n\n* Forgot address comment in func_8005DC3C","measures":{"fuzzy_match_percent":20.653976,"total_code":2879592,"matched_code":589400,"matched_code_percent":20.468178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3265,"matched_functions_percent":49.900658,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-08T13:18:59Z","commit_sha":"75b0b5bbc1d8992d9fdbf06ef249e59dadfefab4","commit_message":"Use bools for clarity","measures":{"fuzzy_match_percent":20.634253,"total_code":2879592,"matched_code":588832,"matched_code_percent":20.448452,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3263,"matched_functions_percent":49.87009,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-08T12:46:26Z","commit_sha":"476c7425abb040bed6ac01b0520e98cee48a397e","commit_message":"`func_80038A6C` -> `Math_Distance2dCheck`, emagic angle and distance values","measures":{"fuzzy_match_percent":20.634253,"total_code":2879592,"matched_code":588832,"matched_code_percent":20.448452,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3263,"matched_functions_percent":49.87009,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-08T12:00:37Z","commit_sha":"9c486c3199b89a038a9cd95ff02361e4ebd45b0b","commit_message":"match func_8007E860, func_8007E9C4, func_8007EBBC and func_8007F95C (#232)","measures":{"fuzzy_match_percent":20.634253,"total_code":2879592,"matched_code":588832,"matched_code_percent":20.448452,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3263,"matched_functions_percent":49.87009,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-08T08:35:48Z","commit_sha":"ed5df7ea85afc5d03fa01b0def6e9bd442840182","commit_message":"Match `func_8007F14C`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.550629,"total_code":2879592,"matched_code":586424,"matched_code_percent":20.36483,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3259,"matched_functions_percent":49.808956,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-08T07:23:22Z","commit_sha":"a28adf08e9313379a9dee49eb5eb0168da35d630","commit_message":"Update decls","measures":{"fuzzy_match_percent":20.546185,"total_code":2879592,"matched_code":586296,"matched_code_percent":20.360384,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3258,"matched_functions_percent":49.79367,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T19:53:53Z","commit_sha":"7cc6505d34c18b63c4d64cd01d695a77eb2457cb","commit_message":"Bodyprog: MAtched func_8008D8C0 (#231)","measures":{"fuzzy_match_percent":20.546185,"total_code":2879592,"matched_code":586296,"matched_code_percent":20.360384,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3258,"matched_functions_percent":49.79367,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T19:30:48Z","commit_sha":"e620e2b500de6b0a045dd3e561a65a2439c0c349","commit_message":"Fill out decls","measures":{"fuzzy_match_percent":20.538961,"total_code":2879592,"matched_code":586088,"matched_code_percent":20.35316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3257,"matched_functions_percent":49.77839,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T15:28:39Z","commit_sha":"86bb4b274603e996d2b8d2ecbf5e2e727db69946","commit_message":"Update functions related to anim loading","measures":{"fuzzy_match_percent":20.538961,"total_code":2879592,"matched_code":586088,"matched_code_percent":20.35316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3257,"matched_functions_percent":49.77839,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T14:16:30Z","commit_sha":"e39fe35dafd6edcdd36f9e193c70930b674de16f","commit_message":"Demagicking, naming","measures":{"fuzzy_match_percent":20.538961,"total_code":2879592,"matched_code":586088,"matched_code_percent":20.35316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3257,"matched_functions_percent":49.77839,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T13:17:20Z","commit_sha":"e2b920cb6eee6eb44e7fdf9d2320672b4bca5c1d","commit_message":"Bodyprog matches (#230)\n\n* match func_8007D090\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>\n\n* match func_8007D970\n\n* match func_8007E5AC\n\nCo-authored-by: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>\n\n---------\n\nCo-authored-by: emoose <1755499+emoose@users.noreply.github.com>\nCo-authored-by: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.538961,"total_code":2879592,"matched_code":586088,"matched_code_percent":20.35316,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3257,"matched_functions_percent":49.77839,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T11:23:42Z","commit_sha":"49a656fa2d88feb44722489aae366a9bb8650d5f","commit_message":"Add player flags enum","measures":{"fuzzy_match_percent":20.354351,"total_code":2879592,"matched_code":580772,"matched_code_percent":20.168552,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3254,"matched_functions_percent":49.73254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T07:37:31Z","commit_sha":"8d864e37b513f3ab286ff170d306559d503473a0","commit_message":"Move comments, demagic flags","measures":{"fuzzy_match_percent":20.354351,"total_code":2879592,"matched_code":580772,"matched_code_percent":20.168552,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3254,"matched_functions_percent":49.73254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T06:07:33Z","commit_sha":"bc1f8265ec2ff450a956c36c15674ad1b50b54fb","commit_message":"bodyprog: symbol recognition\n\nAlso added `func_80055028` match which was done by Sezz, me and fgsfds\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.354351,"total_code":2879592,"matched_code":580772,"matched_code_percent":20.168552,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3254,"matched_functions_percent":49.73254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T05:59:05Z","commit_sha":"70b51fa038ac8d84772fc450877d47d1f87fd02f","commit_message":"map0_s-1: match `func_800D7440`","measures":{"fuzzy_match_percent":20.348518,"total_code":2879592,"matched_code":580604,"matched_code_percent":20.162718,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3253,"matched_functions_percent":49.717255,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-07T00:15:01Z","commit_sha":"c83e6ec7e6b2d29480b2e63d02a5c92f8b08a359","commit_message":"vw_system: minor fixups","measures":{"fuzzy_match_percent":20.338516,"total_code":2879592,"matched_code":580316,"matched_code_percent":20.152716,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3252,"matched_functions_percent":49.70197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T23:55:20Z","commit_sha":"ba77c624c5e599fa60a5e87447acfeebb1693584","commit_message":"vw_system: name a couple unnamed `VC_ROAD_DATA` fields","measures":{"fuzzy_match_percent":20.338516,"total_code":2879592,"matched_code":580316,"matched_code_percent":20.152716,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3252,"matched_functions_percent":49.70197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T18:50:52Z","commit_sha":"780eca1a0f5280617d660f1244ca2430fa9db040","commit_message":"map0_s01: match `func_800D76A0`\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.338516,"total_code":2879592,"matched_code":580316,"matched_code_percent":20.152716,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3252,"matched_functions_percent":49.70197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T18:38:12Z","commit_sha":"17342fa376af77c189f6f03a6d4740c8d46f2fb2","commit_message":"Bodyprog: Matched func_8006B9C8 (#229)","measures":{"fuzzy_match_percent":20.334488,"total_code":2879592,"matched_code":580200,"matched_code_percent":20.148687,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3251,"matched_functions_percent":49.686687,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T18:34:00Z","commit_sha":"a8194098426b21d71ba4971436ac1c3bbe596bb7","commit_message":"Match `sharedFunc_800D81B0_0_s01`","measures":{"fuzzy_match_percent":20.320875,"total_code":2879592,"matched_code":579808,"matched_code_percent":20.135075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3250,"matched_functions_percent":49.671406,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T18:19:25Z","commit_sha":"185d258820c92760a3e7a48973f8b927f6c8c914","commit_message":"Match `sharedFunc_800D8244_1_s02`, reduce `sharedFunc_800CE59C_0_s01` comments","measures":{"fuzzy_match_percent":20.319763,"total_code":2879592,"matched_code":579776,"matched_code_percent":20.133963,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3249,"matched_functions_percent":49.65612,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T15:51:18Z","commit_sha":"30fa6b22fde891041cebe60106f6cf622cf66b5e","commit_message":"Match func_800CE59C (#228)\n\n\nCo-authored-by: belek666 <15877417+belek666@users.noreply.github.com>\nCo-authored-by: fgsfds <fgsfds@users.noreply.github.com>","measures":{"fuzzy_match_percent":20.314945,"total_code":2879592,"matched_code":579776,"matched_code_percent":20.133963,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3249,"matched_functions_percent":49.65612,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T13:13:05Z","commit_sha":"35cd71dd22b32b6361fa7a3618ef79456dc6d8b3","commit_message":"Match `func_800D7E88`, update types","measures":{"fuzzy_match_percent":20.044073,"total_code":2879592,"matched_code":571976,"matched_code_percent":19.86309,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3239,"matched_functions_percent":49.503284,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T10:49:08Z","commit_sha":"15cd5c1b7770526afe36d059a576c94b387e3090","commit_message":"Append newlines to ends of config files","measures":{"fuzzy_match_percent":20.042267,"total_code":2879592,"matched_code":571924,"matched_code_percent":19.861286,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3238,"matched_functions_percent":49.488003,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T09:42:17Z","commit_sha":"edeba9954d293c8af9ffe884481ec4a12ea92d8f","commit_message":"Share `sharedFunc_800D7560_0_s01`","measures":{"fuzzy_match_percent":20.042267,"total_code":2879592,"matched_code":571924,"matched_code_percent":19.861286,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3238,"matched_functions_percent":49.488003,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T08:28:42Z","commit_sha":"ff147e435d17b55ce5ed17b557b3756c1f13a3eb","commit_message":"map0_s01: 5 matches\n\nCo-Authored-By: Frozen Burnside <53267111+fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":19.986704,"total_code":2879592,"matched_code":570324,"matched_code_percent":19.805721,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3233,"matched_functions_percent":49.411587,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-06T07:45:04Z","commit_sha":"2df2712299c17b0b333f8878bfa44b4b1792bcf9","commit_message":"Match `func_8007D6E0`, `func_800DC394`, `func_800DA8A4`","measures":{"fuzzy_match_percent":19.963089,"total_code":2879592,"matched_code":569644,"matched_code_percent":19.782108,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3227,"matched_functions_percent":49.319885,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T19:17:10Z","commit_sha":"659e6ac7a35f6d88f2797260210ccdec61e673d5","commit_message":"Bodyprog matches (#227)\n\n* match func_8007C0D8 and func_8007C800\n\n* format","measures":{"fuzzy_match_percent":19.95642,"total_code":2879592,"matched_code":569452,"matched_code_percent":19.77544,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3224,"matched_functions_percent":49.274033,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T17:31:30Z","commit_sha":"436c390d28e9615152d4c1e2699c57e0bb466146","commit_message":"Bodyprog: Matched func_800421D8 (#226)","measures":{"fuzzy_match_percent":19.816679,"total_code":2879592,"matched_code":565428,"matched_code_percent":19.635698,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3222,"matched_functions_percent":49.243465,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T17:23:45Z","commit_sha":"3290d8b6cdb74e506f56f81011492f0120fb826e","commit_message":"Match `func_800DC864`, `func_800DC830`, `func_800DC3C8`\n\nCo-Authored-By: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":19.8064,"total_code":2879592,"matched_code":565132,"matched_code_percent":19.62542,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3221,"matched_functions_percent":49.228184,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T16:04:54Z","commit_sha":"fd2378e80af68e3ecc4f6c1aeb4e8555443870ed","commit_message":"match func_800E2154 (#225)","measures":{"fuzzy_match_percent":19.762228,"total_code":2879592,"matched_code":563860,"matched_code_percent":19.581245,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3218,"matched_functions_percent":49.18233,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T15:02:57Z","commit_sha":"c4d4ef4b556ffbadae6d7ef5e4ad0b6c977dae4f","commit_message":"Match `func_800DD2EC`","measures":{"fuzzy_match_percent":19.7582,"total_code":2879592,"matched_code":563744,"matched_code_percent":19.577219,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3217,"matched_functions_percent":49.16705,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T10:51:59Z","commit_sha":"3537c11f0228a8c10b19cb8fd32d2cb82d909a4e","commit_message":"Match `func_800DC9C8`","measures":{"fuzzy_match_percent":19.746948,"total_code":2879592,"matched_code":563420,"matched_code_percent":19.565968,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3216,"matched_functions_percent":49.151768,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T10:20:32Z","commit_sha":"8ec1e4882f497aa4a5b2933b0a8bc7989d360283","commit_message":"Match `func_800DC8C8`","measures":{"fuzzy_match_percent":19.718748,"total_code":2879592,"matched_code":562608,"matched_code_percent":19.537767,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3215,"matched_functions_percent":49.136482,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T08:15:07Z","commit_sha":"e75acc634c7c4d2bd0e88fe4b2deb8819eb8a5d2","commit_message":"Demagic `func_8007D6F0`","measures":{"fuzzy_match_percent":19.70986,"total_code":2879592,"matched_code":562352,"matched_code_percent":19.528877,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3214,"matched_functions_percent":49.121197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T07:57:33Z","commit_sha":"6358cd1fa380a09cc32356529b819671697a302a","commit_message":"text_draw: minor fixup","measures":{"fuzzy_match_percent":19.70986,"total_code":2879592,"matched_code":562352,"matched_code_percent":19.528877,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3214,"matched_functions_percent":49.121197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T07:48:20Z","commit_sha":"e08a71b56e5f713e8d03ec341c18edccef02dd93","commit_message":"Add doc comments","measures":{"fuzzy_match_percent":19.70986,"total_code":2879592,"matched_code":562352,"matched_code_percent":19.528877,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3214,"matched_functions_percent":49.121197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T06:16:29Z","commit_sha":"806fe9dd74301e32ee1068ad0049d057246acd69","commit_message":"Remove `ANGLE_DIFF` and use `ABS_DIFF`","measures":{"fuzzy_match_percent":19.70986,"total_code":2879592,"matched_code":562352,"matched_code_percent":19.528877,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3214,"matched_functions_percent":49.121197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T06:07:32Z","commit_sha":"9a4a3ad0aaebe9e76b3286413fc2742536552477","commit_message":"Shorten field name","measures":{"fuzzy_match_percent":19.70986,"total_code":2879592,"matched_code":562352,"matched_code_percent":19.528877,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3214,"matched_functions_percent":49.121197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T06:02:41Z","commit_sha":"87ff7b1e452bfad6e9e60d695e49d19c49e6fc57","commit_message":"Formatting, demagicking","measures":{"fuzzy_match_percent":19.70986,"total_code":2879592,"matched_code":562352,"matched_code_percent":19.528877,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3214,"matched_functions_percent":49.121197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-05T03:40:01Z","commit_sha":"2dd9b80361cae19954e1a2fa12d7752a7d90bce9","commit_message":"match func_8007D6F0 (#224)\n\n* match func_8007D6F0\n\n* match func_8007B924","measures":{"fuzzy_match_percent":19.70986,"total_code":2879592,"matched_code":562352,"matched_code_percent":19.528877,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3214,"matched_functions_percent":49.121197,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T18:52:25Z","commit_sha":"96217b255a0727e6243fe644591117f6afe2b91c","commit_message":"Match func_80089644 (#223)","measures":{"fuzzy_match_percent":19.619152,"total_code":2879592,"matched_code":559740,"matched_code_percent":19.43817,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3212,"matched_functions_percent":49.09063,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T16:19:18Z","commit_sha":"b53c65f31138b7790c66ffaef71d2026771c9718","commit_message":"Fix typo","measures":{"fuzzy_match_percent":19.610538,"total_code":2879592,"matched_code":559492,"matched_code_percent":19.429558,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3211,"matched_functions_percent":49.075348,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T15:50:31Z","commit_sha":"dd17c7fe274a43af2592c33a8a571edf00da236a","commit_message":"format configs (#221)","measures":{"fuzzy_match_percent":19.545557,"total_code":2879592,"matched_code":556600,"matched_code_percent":19.329128,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3209,"matched_functions_percent":49.04478,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T15:50:15Z","commit_sha":"5a2608d368dc52679a792405207799eb63b0e143","commit_message":"Use user in docker container, install some packages (#220)\n\nCreate a user with the id, group id and name of the host. This way\nthe files produced by this container will be owned by the user.\nOtherwise all the files produced by the conainer would be owner\nby root which is annoying to work with.\n\nInstall gcc (needed by permuter) and progress (needed by objdiff)\nInstall pycparser (needed by permuter)","measures":{"fuzzy_match_percent":19.545557,"total_code":2879592,"matched_code":556600,"matched_code_percent":19.329128,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3209,"matched_functions_percent":49.04478,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T08:30:29Z","commit_sha":"58430f54ad6e1803ef20c9540b3c5617f104029d","commit_message":"Update `TEST_RNG` doc","measures":{"fuzzy_match_percent":19.545557,"total_code":2879592,"matched_code":556600,"matched_code_percent":19.329128,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3209,"matched_functions_percent":49.04478,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T08:17:56Z","commit_sha":"1adda5dc3cdb1dc81a9b4442e859433e1a2f1aee","commit_message":"Add `GENERATE_INT` macro func","measures":{"fuzzy_match_percent":19.545557,"total_code":2879592,"matched_code":556600,"matched_code_percent":19.329128,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3209,"matched_functions_percent":49.04478,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T06:42:50Z","commit_sha":"f36829cd9b6465f6a30fa41d669e7ccc1d0e9c81","commit_message":"Match `func_80077D00` (#214)\n\n* Update types\n\n* Add globals\n\n* Update bodyprog.h\n\n* Update math.h\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\n\n* Update game.h\n\n* Match `func_80077D00`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\n\n* Update game.h\n\n* Update bodyprog_80054FC0.c\n\n* rodata\n\n* Update game.h\n\n* Update player_logic.h\n\n* Update bodyprog_80054FC0.c\n\n* Fix typo\n\n---------\n\nCo-authored-by: belek666 <15877417+belek666@users.noreply.github.com>\nCo-authored-by: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":19.545557,"total_code":2879592,"matched_code":556600,"matched_code_percent":19.329128,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3209,"matched_functions_percent":49.04478,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T06:17:25Z","commit_sha":"ce173664b026b7a322ca9d1044f07b1f4176c7b7","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":19.010899,"total_code":2879592,"matched_code":541204,"matched_code_percent":18.794468,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3208,"matched_functions_percent":49.029495,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-04T02:17:23Z","commit_sha":"4c2dd59966d15ea5668b22d438482d54d1714c03","commit_message":"Maps: Add shared matches for sharedFunc_800CF2A4_0_s01, sharedFunc_800CF9A8_0_s01 and sharedData_800DD796_0_s01 (#219)","measures":{"fuzzy_match_percent":19.010899,"total_code":2879592,"matched_code":541204,"matched_code_percent":18.794468,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3208,"matched_functions_percent":49.029495,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T21:45:43Z","commit_sha":"050b343dd5471176d6f19207f31f0ce49484707c","commit_message":"Compilation build fix\n\nDid a whole disaster as I didn't knew how to deal with 3 PRs at the same time.","measures":{"fuzzy_match_percent":18.82365,"total_code":2879592,"matched_code":535812,"matched_code_percent":18.60722,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3186,"matched_functions_percent":48.69326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T20:23:43Z","commit_sha":"a23a04a1e3f20547595220fc12c9ed886ff2d5e6","commit_message":"Bodyprog: Matched 2 functions (#218)\n\n* Bodyprog: Matched func_8006E490\n\n* Bodyprog: Matched func_8005759C","measures":{"fuzzy_match_percent":18.82365,"total_code":2879592,"matched_code":535812,"matched_code_percent":18.60722,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3186,"matched_functions_percent":48.69326,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T17:48:24Z","commit_sha":"d94dcfe216874a4ee9ee8bbd7187be5b0f32802d","commit_message":"Actually fix build","measures":{"fuzzy_match_percent":18.811148,"total_code":2879592,"matched_code":535452,"matched_code_percent":18.594719,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3184,"matched_functions_percent":48.662693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T16:20:57Z","commit_sha":"003916ec17008095f449409908bff5ce89b0714b","commit_message":"Name some fields related to map messages (#212)\n\n* Name some fields related to map messages\n\n* match func_8004ACF4 (decomp.me/scratch/er1wO)\n\n* more map message renames\n\n* rename func_8004ACF4 to MapMsgCalculateWidthTable\n\n* cleanup MapMsgCalculateWidthTable\n\n* g_SysWork.field_2350_0 = HighResolutionTextRender\n\n* some more names\n\n* Rename g_MapMsgCurrentIdx to g_MapMsgMainIdx\n\n* Rename D_800A99AC to g_MapMsgCurrentIdx","measures":{"fuzzy_match_percent":18.792118,"total_code":2879592,"matched_code":534904,"matched_code_percent":18.575687,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3183,"matched_functions_percent":48.64741,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T15:06:35Z","commit_sha":"ae351b1bfbd37a1ed5b1e60e70ca71e4972beef0","commit_message":"Map messages for map0_s00 (#215)","measures":{"fuzzy_match_percent":18.811148,"total_code":2879592,"matched_code":535452,"matched_code_percent":18.594719,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3184,"matched_functions_percent":48.662693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T14:57:20Z","commit_sha":"1c1cfd7d0d1d30682855bc303f2abce2e28110e5","commit_message":"Bodyprog: Matched 2 functions (#213)\n\n* Bodyprog: Matched func_8008D330\n\n* Bodyprog: Matched func_8006CB90\n\n* Bodyprog: Matched func_8008D330\n\n* Bodyprog: Matched func_8006CB90\n\nCo-Authored-By: Mc-muffin <8714476+Mc-muffin@users.noreply.github.com>\nCo-Authored-By: mkst <22226349+mkst@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.811148,"total_code":2879592,"matched_code":535452,"matched_code_percent":18.594719,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3184,"matched_functions_percent":48.662693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T09:19:11Z","commit_sha":"b22949c0cfafa114b88f471b3447dba77ed51598","commit_message":"Update `e_Sfx`","measures":{"fuzzy_match_percent":18.799202,"total_code":2879592,"matched_code":535108,"matched_code_percent":18.582771,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3182,"matched_functions_percent":48.632126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T03:53:12Z","commit_sha":"09a031a36efa23f6f0d574427de8341132fedf60","commit_message":"Formatting, demagicking","measures":{"fuzzy_match_percent":18.799202,"total_code":2879592,"matched_code":535108,"matched_code_percent":18.582771,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3182,"matched_functions_percent":48.632126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-03T03:25:25Z","commit_sha":"7b08acb22c0cdd3c358424e9aae96b5fec948fa6","commit_message":"Update bodyprog_80085D78.c","measures":{"fuzzy_match_percent":18.799202,"total_code":2879592,"matched_code":535108,"matched_code_percent":18.582771,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3182,"matched_functions_percent":48.632126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-02T23:43:05Z","commit_sha":"a1aa053c691ddf2ec6ee17df0b26bbf410562d48","commit_message":"Name some fields related to map messages (#211)","measures":{"fuzzy_match_percent":18.799202,"total_code":2879592,"matched_code":535108,"matched_code_percent":18.582771,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3182,"matched_functions_percent":48.632126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-02T18:23:44Z","commit_sha":"6ebdc6654b5b1c0ab599eb8bb8a5b35d276d61de","commit_message":"Bodyprog: Matched 2 functions (#210)\n\n* Bodyprog: Matched func_8005B4BC\n\n* Bodyprog: Matched func_80045108\n\n* Fixed func_80045108 types","measures":{"fuzzy_match_percent":18.799202,"total_code":2879592,"matched_code":535108,"matched_code_percent":18.582771,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3182,"matched_functions_percent":48.632126,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-02T16:06:07Z","commit_sha":"2240085954589b84bcd9792fe132006847f1ecde","commit_message":"Update dialog code names","measures":{"fuzzy_match_percent":18.787811,"total_code":2879592,"matched_code":534780,"matched_code_percent":18.57138,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3180,"matched_functions_percent":48.60156,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-02T05:02:44Z","commit_sha":"5126466f3cbb9658a81b314111ac2055e2ab3716","commit_message":"Add string parser macros","measures":{"fuzzy_match_percent":18.787811,"total_code":2879592,"matched_code":534780,"matched_code_percent":18.57138,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3180,"matched_functions_percent":48.60156,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-01T22:33:58Z","commit_sha":"a6fabe487030b656f068f21f7eb0a9a43cced106","commit_message":"bodyprog: `func_8008B15C` match\n\n- func_8008B15C\n@emoose\n@fmil95\n@tomorroisnew\n@Sezzary\n\nCo-Authored-By: tomorroisnew <tomorroisnew@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>\nCo-Authored-By: emoose <emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.787811,"total_code":2879592,"matched_code":534780,"matched_code_percent":18.57138,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3180,"matched_functions_percent":48.60156,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-01T15:57:52Z","commit_sha":"c0a727337ccea9b72e993cdab4b9cb88bc152a35","commit_message":"Update string parser structs","measures":{"fuzzy_match_percent":18.783367,"total_code":2879592,"matched_code":534652,"matched_code_percent":18.566936,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3179,"matched_functions_percent":48.586277,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-01T15:35:45Z","commit_sha":"e65fa872cb56aaf1d63f0257944865f1932ce6a0","commit_message":"Further deobfuscate string parsers","measures":{"fuzzy_match_percent":18.783367,"total_code":2879592,"matched_code":534652,"matched_code_percent":18.566936,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3179,"matched_functions_percent":48.586277,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-01T12:17:47Z","commit_sha":"1afe67c6600224f35995bb9aba86482be2cf2eb2","commit_message":"Match `func_800451B0`\n\nCo-Authored-By: tomorrowisnew_ <85917161+tomorroisnew@users.noreply.github.com>\nCo-Authored-By: Mc-muffin <8714476+Mc-muffin@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.783367,"total_code":2879592,"matched_code":534652,"matched_code_percent":18.566936,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3179,"matched_functions_percent":48.586277,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-01T11:07:34Z","commit_sha":"9547f9354d8d97a008346952dba5268788ea2e14","commit_message":"Match `func_8004ACF4`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>\nCo-Authored-By: pseregiet <patryk.seregiet@gmail.com>\nCo-Authored-By: Mc-muffin <8714476+Mc-muffin@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.777533,"total_code":2879592,"matched_code":534484,"matched_code_percent":18.561102,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3178,"matched_functions_percent":48.57099,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-01T07:52:36Z","commit_sha":"3cdfc654fefce4cd75ec480a104a65be9e2033ff","commit_message":"Match `Gfx_StringDraw`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.758501,"total_code":2879592,"matched_code":533936,"matched_code_percent":18.54207,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3177,"matched_functions_percent":48.55571,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-08-01T04:31:51Z","commit_sha":"662137e5c8f34f04d3378459c6912e2840e93899","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":18.723053,"total_code":2879592,"matched_code":533936,"matched_code_percent":18.54207,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3177,"matched_functions_percent":48.55571,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-31T19:42:56Z","commit_sha":"6a2533f5be4fbfe7a474c621caf99c1e2ede85a5","commit_message":"Bodyprog: Matched 3 functions. (#209)\n\n* Bodyprog: Match func_80056464\n\n* Bodyprog: Match func_80070360\n\n* Bodyprog: Matched func_8004506C\n\n* Accidentally removed an important comment","measures":{"fuzzy_match_percent":18.723053,"total_code":2879592,"matched_code":533936,"matched_code_percent":18.54207,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3177,"matched_functions_percent":48.55571,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-31T19:40:17Z","commit_sha":"367408388dbfa6f8ff5b01b8edea70aefe9192ef","commit_message":"minor touch ups","measures":{"fuzzy_match_percent":18.706522,"total_code":2879592,"matched_code":533460,"matched_code_percent":18.525541,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3174,"matched_functions_percent":48.509857,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-31T19:26:01Z","commit_sha":"41dad28c34b362752731f9c99decc22bd2c62604","commit_message":"bodyprog: add item name & description string literals (#208)","measures":{"fuzzy_match_percent":18.706522,"total_code":2879592,"matched_code":533460,"matched_code_percent":18.525541,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3174,"matched_functions_percent":48.509857,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-31T03:55:56Z","commit_sha":"0466cbcba4a8f8df7b91b1dc70d5f654556a4d70","commit_message":"bodyprog: matching compilation fix 2","measures":{"fuzzy_match_percent":18.706522,"total_code":2879592,"matched_code":533460,"matched_code_percent":18.525541,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3174,"matched_functions_percent":48.509857,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-31T03:48:31Z","commit_sha":"cfee6eb924526dac6e50967d8c47fd2a81206966","commit_message":"bodyprog: matching compilation fix","measures":{"fuzzy_match_percent":18.706522,"total_code":2879592,"matched_code":533460,"matched_code_percent":18.525541,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3174,"matched_functions_percent":48.509857,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-31T03:37:29Z","commit_sha":"5a0787e996b4f58b1800dce177e27fa646571267","commit_message":"bodyprog: symbol recognition\n\nAlso moved and renamed files","measures":{"fuzzy_match_percent":18.706522,"total_code":2879592,"matched_code":533460,"matched_code_percent":18.525541,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3174,"matched_functions_percent":48.509857,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-30T18:47:52Z","commit_sha":"8254df9b7d6ad8615c83f5b88784e7908fb973e2","commit_message":"Bodyprog: Minor refactoring on func_80089840 (#207)\n\n* Bodyprog: Retyped func_80089840 based on additional context\n\n* Cleaup s_func_80089840 not used anymore","measures":{"fuzzy_match_percent":18.70555,"total_code":2879592,"matched_code":533432,"matched_code_percent":18.524569,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3172,"matched_functions_percent":48.47929,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-30T04:11:29Z","commit_sha":"a691fb216ffaecc42aeefaf9e549d3cfafcce713","commit_message":"Match `func_8006DCE0`\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.70555,"total_code":2879592,"matched_code":533432,"matched_code_percent":18.524569,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3172,"matched_functions_percent":48.47929,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-30T03:24:30Z","commit_sha":"4a97415cb78d46a3f5c72c96594d4e6b5de92a86","commit_message":"Sound command documentation","measures":{"fuzzy_match_percent":18.689436,"total_code":2879592,"matched_code":532968,"matched_code_percent":18.508455,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3171,"matched_functions_percent":48.464005,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-30T00:18:32Z","commit_sha":"b572da567f883239bbd2bbea0f0e5028ad0adfcb","commit_message":"bodyprog: documentation","measures":{"fuzzy_match_percent":18.689436,"total_code":2879592,"matched_code":532968,"matched_code_percent":18.508455,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3171,"matched_functions_percent":48.464005,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-29T23:56:56Z","commit_sha":"01428bfd18355c2cd52da4a13d85c00ff4cd9238","commit_message":"Bodyprog: Matched 2 functions (#206)\n\n* Bodyprog: Matched func_80041BA0\n\n* Bodyprog: Matched func_8006F338\n\n* Cleanup","measures":{"fuzzy_match_percent":18.689436,"total_code":2879592,"matched_code":532968,"matched_code_percent":18.508455,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3171,"matched_functions_percent":48.464005,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-29T18:04:04Z","commit_sha":"6d66929a3df21eac5ebaa047cf416085138de29a","commit_message":"Bodyprog: Matched 4 functions (#205)\n\n* Match func_80070320 and func_8006982C\n\n* Bodyprog: Matched func_80070184\n\n* Bodyprog: Match func_80041B1C","measures":{"fuzzy_match_percent":18.67999,"total_code":2879592,"matched_code":532696,"matched_code_percent":18.49901,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3169,"matched_functions_percent":48.43344,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-29T13:36:09Z","commit_sha":"29f8baca68702592a375184d9d2becea4411695b","commit_message":"Match `func_80069844`","measures":{"fuzzy_match_percent":18.667767,"total_code":2879592,"matched_code":532344,"matched_code_percent":18.486786,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3165,"matched_functions_percent":48.372307,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-29T04:42:55Z","commit_sha":"24acf0871e3cbce2e1785e8a60e3c4bdd98951bd","commit_message":"maps: `func_800D0600` match + fixed improperly added functions\n\nFixed some functions that were improperly added.\n\nMatches:\n- func_800D0600\n@Giragast\n@Sezzary\n@karas84\n@fmil95\nNote: on Discord Giragast mentionted he did the function without knowing that it was previously matched.\n\nCo-Authored-By: Giragast <Giragast@users.noreply.github.com>\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.666794,"total_code":2879592,"matched_code":532316,"matched_code_percent":18.485813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3164,"matched_functions_percent":48.35702,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-29T03:40:33Z","commit_sha":"6a9b59c1795b806eb208c736cbda3cf6ffe93565","commit_message":"Minor changes","measures":{"fuzzy_match_percent":18.624567,"total_code":2879592,"matched_code":531100,"matched_code_percent":18.443584,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3159,"matched_functions_percent":48.280605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-29T02:07:40Z","commit_sha":"b9eb59558116443cf52e7c8887ce541a4ec0456f","commit_message":"bodyprog: 2 matches + item_screen symbol recognition\n\nDid symbol recognition for `item_screens` and also made splits, now whenever `Gfx_Inventory_2dBackgroundDraw` get fully matched RODATA migration will be possible.\n\nMatches:\n- func_80070030\n@tomorroisnew\n+ (Anon contrib)\n\n- func_80041074\n@karas84\n@tomorroisnew\n\nCo-Authored-By: tomorroisnew <tomorroisnew@users.noreply.github.com>\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.624567,"total_code":2879592,"matched_code":531100,"matched_code_percent":18.443584,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3159,"matched_functions_percent":48.280605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":98,"complete_units":0}},{"timestamp":"2025-07-29T01:01:02Z","commit_sha":"3ad2b8e4d46a571a9ca9d71f1809953ea5f4ebfe","commit_message":"Bodyprog: Matched 2 function (#204)\n\n* Bodyprog: Match func_8004255C\n\n* Bodyprog: Matched func_800700F8, adjusted func_8006DB3C arguments\n\n* Bodyprog: Matched func_800700F8, forgot to actually include the function\n\n* Bodyprog: Fixed func_8006DB3C in the header","measures":{"fuzzy_match_percent":18.618177,"total_code":2879592,"matched_code":530916,"matched_code_percent":18.437195,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3157,"matched_functions_percent":48.25004,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T18:42:39Z","commit_sha":"cc220b46ba3f2a178c55a73e933ed94e85c75738","commit_message":"match bodyprog_8003AB28 file (#203)\n\n* match bodyprog_8003AB28 file\n\n* fix nonmatching\n\n* match func_80037C5C\n\nCo-Authored-By: Sezz <65776527+Sezzary@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Sezz <65776527+Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.609009,"total_code":2879592,"matched_code":530652,"matched_code_percent":18.428028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3155,"matched_functions_percent":48.21947,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T15:18:51Z","commit_sha":"359f19e042e81e3d582d37cead00dcd49feb75c7","commit_message":"Update bodyprog.h","measures":{"fuzzy_match_percent":18.560307,"total_code":2879592,"matched_code":528784,"matched_code_percent":18.363157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3150,"matched_functions_percent":48.14305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T10:28:46Z","commit_sha":"ffb91c2ff02e379a9a17703b385f36676c76c339","commit_message":"Name main menu fog functions, add decls","measures":{"fuzzy_match_percent":18.560307,"total_code":2879592,"matched_code":528784,"matched_code_percent":18.363157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3150,"matched_functions_percent":48.14305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T09:28:40Z","commit_sha":"02059324b8ec5d1252cebd816ed2fd87764adb21","commit_message":"Use `FP_TIME`","measures":{"fuzzy_match_percent":18.560307,"total_code":2879592,"matched_code":528784,"matched_code_percent":18.363157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3150,"matched_functions_percent":48.14305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T04:40:58Z","commit_sha":"58dad22b5407b4e1147058a437532c5023331875","commit_message":"Demagicking","measures":{"fuzzy_match_percent":18.560307,"total_code":2879592,"matched_code":528784,"matched_code_percent":18.363157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3150,"matched_functions_percent":48.14305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T02:23:11Z","commit_sha":"02b3f33331cd1aaafa04698abd07f9ff930e6c93","commit_message":"Formatting, demagicking, naming","measures":{"fuzzy_match_percent":18.560307,"total_code":2879592,"matched_code":528784,"matched_code_percent":18.363157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3150,"matched_functions_percent":48.14305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T01:24:37Z","commit_sha":"9018c417ef2bd225af4315abc86f84d89350350f","commit_message":"Add matches to map5 (#202)","measures":{"fuzzy_match_percent":18.560307,"total_code":2879592,"matched_code":528784,"matched_code_percent":18.363157,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3150,"matched_functions_percent":48.14305,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T01:22:35Z","commit_sha":"113f910b79bf48543b710eb3155c204eeeaf7b69","commit_message":"Bodyprog: matched func_8004201C (#201)\n\n* Bodyprog: Matched func_8004201C, added a note in func_800449AC\n\n* Fix typo","measures":{"fuzzy_match_percent":18.553223,"total_code":2879592,"matched_code":528580,"matched_code_percent":18.356073,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3144,"matched_functions_percent":48.05135,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-28T01:20:20Z","commit_sha":"dfe856ca0ce651bbbc8ae7dad282d9bd1b33b53a","commit_message":"Added map3 matches for func_800D0960, func_800D0994, func_800D09D4. Added header for map3_s00 (#200)","measures":{"fuzzy_match_percent":18.547527,"total_code":2879592,"matched_code":528416,"matched_code_percent":18.350378,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3143,"matched_functions_percent":48.036068,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-27T16:11:30Z","commit_sha":"9448e73802294b643020dfb087478667554b8d97","commit_message":"Bodyprog: Matched 3 functions (#199)\n\n* Bodyprog: Match func_80056C8C\n\n* Bodyprog: Match func_80056C8C, forgot to add in bodyprog.h\n\n* Bodyprog: Match func_800449AC\n\n* Bodyprog: Match func_80056C8C, forgot to format the header files\n\n* Bodyprog: Match func_8005C7D0\n\n* Accidentally removed an important comment","measures":{"fuzzy_match_percent":18.529053,"total_code":2879592,"matched_code":527884,"matched_code_percent":18.331903,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3140,"matched_functions_percent":47.99022,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-27T04:25:45Z","commit_sha":"afd052177f6f37b7442ba4d23ed3caec2828502e","commit_message":"Match `func_8008A270`","measures":{"fuzzy_match_percent":18.522942,"total_code":2879592,"matched_code":527708,"matched_code_percent":18.32579,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3137,"matched_functions_percent":47.944366,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-27T02:23:24Z","commit_sha":"f9139152daa421902df5637d5b88a8d8b07d7854","commit_message":"Formatting","measures":{"fuzzy_match_percent":18.51905,"total_code":2879592,"matched_code":527596,"matched_code_percent":18.321901,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3136,"matched_functions_percent":47.929085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-26T20:02:32Z","commit_sha":"c045cd2a0f1de2fa794dd2bf21f27db4cc234ab3","commit_message":"bodyprog: 2 matches (#198)","measures":{"fuzzy_match_percent":18.51905,"total_code":2879592,"matched_code":527596,"matched_code_percent":18.321901,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3136,"matched_functions_percent":47.929085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-25T01:38:29Z","commit_sha":"82764274e479c356348599aa5ad04d9ca7100e8c","commit_message":"Formatting, remove random spaces","measures":{"fuzzy_match_percent":18.515856,"total_code":2879592,"matched_code":527504,"matched_code_percent":18.318707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3134,"matched_functions_percent":47.898518,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-25T00:11:22Z","commit_sha":"c100bb0167506e721af86ba5e6aceaa45a0ddc2d","commit_message":"memcard: name some `Savegame_CardFile` funcs","measures":{"fuzzy_match_percent":18.515856,"total_code":2879592,"matched_code":527504,"matched_code_percent":18.318707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3134,"matched_functions_percent":47.898518,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-25T00:01:55Z","commit_sha":"d3455fa75563114153cbabbf7d56000f6cb393dd","commit_message":"item_screens: 2 matches\n\n- Gfx_Inventory_HealthStatusDraw\n@belek666\n@Sezzary\n\n- Gfx_Inventory_ItemDescriptionDraw (https://decomp.me/scratch/0TcRh)\n@belek666\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.515856,"total_code":2879592,"matched_code":527504,"matched_code_percent":18.318707,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3134,"matched_functions_percent":47.898518,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T19:34:35Z","commit_sha":"c7df6d648fa20c04ebd4e6de9f8a6da858329ee8","commit_message":"maps: match/share `sharedFunc_800DA8E8_0_s01`","measures":{"fuzzy_match_percent":18.370003,"total_code":2879592,"matched_code":523304,"matched_code_percent":18.172853,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3132,"matched_functions_percent":47.86795,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T17:38:02Z","commit_sha":"bfb559d78bc98362d918c94c6b0063070a155226","commit_message":"maps: match/share `sharedFunc_800CEFD0_1_s02`\n\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>\nCo-Authored-By: fgsfdsfgs <fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.26971,"total_code":2879592,"matched_code":520416,"matched_code_percent":18.072561,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3113,"matched_functions_percent":47.577564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T07:49:13Z","commit_sha":"e32f985213771cc8b7e7cd36fc6b2733e23ea956","commit_message":"Match `func_8004F190`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: Frozen Burnside <53267111+fmil95@users.noreply.github.com>\nCo-Authored-By: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.115522,"total_code":2879592,"matched_code":515976,"matched_code_percent":17.918373,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3107,"matched_functions_percent":47.485863,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T07:27:40Z","commit_sha":"26ff01ca48c75b9e199b74b5fba49a0fa660d3ec","commit_message":"`func_80046048` -> `Sd_PlaySfx`, name variables, remove random spaces and tabs","measures":{"fuzzy_match_percent":18.080656,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T06:36:07Z","commit_sha":"f155c21729ed0d5eafc9a42398f7f912c80565f0","commit_message":"item_screens: symbol recognition","measures":{"fuzzy_match_percent":18.080656,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T06:09:07Z","commit_sha":"1e0f2714dd74ae6d7a20eabc647f6e743a24fa2b","commit_message":"Name variables, demagic","measures":{"fuzzy_match_percent":18.080643,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T02:02:29Z","commit_sha":"0b0de6672cdfd9898cf62b5d7d97ca5e8dbce19d","commit_message":"Deobfuscation","measures":{"fuzzy_match_percent":18.080643,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T00:28:14Z","commit_sha":"e8b6ec17a728435625437cdd6fd2a0b870931347","commit_message":"Clean up more junk","measures":{"fuzzy_match_percent":18.080643,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-24T00:11:26Z","commit_sha":"46814cb6de8aefa7a371177b2c431ad071c7cbf2","commit_message":"Clean up junk","measures":{"fuzzy_match_percent":18.080643,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-23T23:02:26Z","commit_sha":"4f7c01ab0013703f61ca888c4aefdeb981bdfece","commit_message":"item_screens: 3 and half matches\n\nOriginally I only wanted try to asign rodata to `item_screens.c`, but didn't went so far with that sadly because of `Gfx_Inventory_2dBackgroundDraw` not fully matching and because of an annoying 4 byte padding that isn't getting generated.\n\n- Gfx_Inventory_2dBackgroundDraw (0x8004FBCC)\n@belek666\n\n- func_800540A4\n@belek666\n\n- func_80054AD8\n@belek666\n\n- func_80054FC0\n@belek666\n@Sezzary\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.080643,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-23T22:55:49Z","commit_sha":"967303d5c0dbf505a68695e285d803304c9cd02e","commit_message":"item_screens: 2 and half matches\n\nOriginally I only wanted try to asign rodata to `item_screens.c`, but didn't went so far with that sadly because of `Gfx_Inventory_2dBackgroundDraw` not fully matching and because of an annoying 4 byte padding that isn't getting generated.\n\n- Gfx_Inventory_2dBackgroundDraw (0x8004FBCC)\n@belek666\n\n- func_800540A4\n@belek666\n\n- func_80054AD8\n@belek666\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":18.080643,"total_code":2879592,"matched_code":514972,"matched_code_percent":17.883507,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3106,"matched_functions_percent":47.470577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-23T05:45:40Z","commit_sha":"a58262d77a80b2a00c70e32ef46f2f80ce7c1dff","commit_message":"bodyprog: 2 matches\n\nMissed one to add I found by pure accident.\n\n- func_80041D48\n@karas84\n@fmil95\n@Sezzary\n\n- func_80054720\n@belek666\n\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":17.868004,"total_code":2879592,"matched_code":514052,"matched_code_percent":17.851557,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3103,"matched_functions_percent":47.42473,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-23T01:41:15Z","commit_sha":"cecd0407f5b53d6b6fd5c0a22bc9a49db119d622","commit_message":"bodyprog: match 2 funcs","measures":{"fuzzy_match_percent":17.84425,"total_code":2879592,"matched_code":513368,"matched_code_percent":17.827803,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3101,"matched_functions_percent":47.39416,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T21:14:48Z","commit_sha":"d5072b12dd9be4fed9d7e20f0f7d3b8a1037b20a","commit_message":"bodyprog: match 3 funcs","measures":{"fuzzy_match_percent":17.819525,"total_code":2879592,"matched_code":512656,"matched_code_percent":17.803078,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3099,"matched_functions_percent":47.363594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T19:50:26Z","commit_sha":"44ac6c6b1ba9f934d3037fbea5cdd32ba15eaf9f","commit_message":"bodyprog: minor fake missmatches fix + rodata migration\n\nEmoose improved `Demo_Update`, however that caused a minor fake missmatch and there were some declared variables that was causing `func_800485D8` to not match 100%","measures":{"fuzzy_match_percent":17.787575,"total_code":2879592,"matched_code":511736,"matched_code_percent":17.77113,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3096,"matched_functions_percent":47.31774,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T17:49:09Z","commit_sha":"ef97d2336678243198ef2b14070b158cd8ca2b2f","commit_message":"bodyprog: match 3 funcs","measures":{"fuzzy_match_percent":17.786749,"total_code":2879592,"matched_code":510344,"matched_code_percent":17.722788,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3094,"matched_functions_percent":47.287178,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T17:46:56Z","commit_sha":"081c695ae235ce109fdcc72afd9a37e5233f52cd","commit_message":"bodyprog: match 3 funcs","measures":{"fuzzy_match_percent":17.786749,"total_code":2879592,"matched_code":510344,"matched_code_percent":17.722788,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3094,"matched_functions_percent":47.287178,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T14:11:21Z","commit_sha":"cb413a10acf44e4f5b52b100a960dbf236d62b56","commit_message":"Fix nonmatching, add matches (#197)\n\n* Fix nonmatching, add matches\n\n* match Inventory_ExitAnimEquippedItemUpdate\n\n---------\n\nCo-authored-by: emoose <emoose@users.noreply.github.com>\nCo-authored-by: Sezz <65776527+Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":17.758966,"total_code":2879592,"matched_code":509544,"matched_code_percent":17.695007,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3091,"matched_functions_percent":47.241325,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T04:52:22Z","commit_sha":"44a786e0305ac0529f71aab8fbb813da2cbb4f44","commit_message":"bodyprog: `func_8003C220` match\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":17.71619,"total_code":2879592,"matched_code":508156,"matched_code_percent":17.646807,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3087,"matched_functions_percent":47.180195,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T03:10:19Z","commit_sha":"68e103f636af46e62fdd6ffe34216ac0794a60c7","commit_message":"maps: share `sharedFunc_800D0B18_0_s00` with more maps","measures":{"fuzzy_match_percent":17.709106,"total_code":2879592,"matched_code":507952,"matched_code_percent":17.63972,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3086,"matched_functions_percent":47.16491,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T02:42:18Z","commit_sha":"225869a4cc5565529ec0846bfc9c5092ecad1fc5","commit_message":"maps: match `sharedFunc_800CDAA8_0_s02`","measures":{"fuzzy_match_percent":17.449486,"total_code":2879592,"matched_code":500476,"matched_code_percent":17.3801,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3065,"matched_functions_percent":46.843956,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T01:35:08Z","commit_sha":"9cfd576a90b9d440714bbd5c5bd56f09aeed14fd","commit_message":"Merge branch 'master' of https://github.com/Vatuu/silent-hill-decomp","measures":{"fuzzy_match_percent":17.134441,"total_code":2879592,"matched_code":491404,"matched_code_percent":17.065058,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3053,"matched_functions_percent":46.660553,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T01:18:37Z","commit_sha":"7768ceebbffa87d9ae96984c3765cc91e888a92d","commit_message":"maps: match `sharedFunc_800D5B48_0_s00`","measures":{"fuzzy_match_percent":17.081879,"total_code":2879592,"matched_code":490684,"matched_code_percent":17.040052,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3050,"matched_functions_percent":46.614704,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T01:05:22Z","commit_sha":"ea63faa351b33e232aefc7ccfd1dc4b73696c1e0","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":16.993116,"total_code":2879592,"matched_code":488128,"matched_code_percent":16.95129,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3041,"matched_functions_percent":46.47715,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T00:18:49Z","commit_sha":"c468cb2d37c3e93a554674659b37c7aa3bc31a0f","commit_message":"memcard: name some `e_CardResult` values","measures":{"fuzzy_match_percent":16.993116,"total_code":2879592,"matched_code":488128,"matched_code_percent":16.95129,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3041,"matched_functions_percent":46.47715,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-22T00:01:58Z","commit_sha":"089de8dac4f6934f4bb1589e6e0fe970af42098f","commit_message":"memcard: add `e_CardResult`\n\nEasier to replace the values for it later once figured out","measures":{"fuzzy_match_percent":16.993116,"total_code":2879592,"matched_code":488128,"matched_code_percent":16.95129,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3041,"matched_functions_percent":46.47715,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-21T17:14:23Z","commit_sha":"c95b83716e67b8e535fb7ed9e2774c1e090926fd","commit_message":"bodyprog: fixups, remove hack from `Demo_Update`\n\nNot sure about the 0x800FEE00 address, we have DEMO_WORK define\npointing to 0x800FDE00 which is 0x1000 away from it\n\nThere's also a 0x800FE600 address used here, which is right at the end\nof DEMO_WORK struct.\n\nMaybe DEMO_WORK is meant to be larger and include both of these? If\nthese funcs are actually demo related anyway.\n\nAlso maybe worth renaming the demo DemoStep stuff to DemoFrameIdx or\nsomething similar eventually","measures":{"fuzzy_match_percent":16.993116,"total_code":2879592,"matched_code":488128,"matched_code_percent":16.95129,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3041,"matched_functions_percent":46.47715,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-21T17:10:23Z","commit_sha":"a2af605510bf660e547cba21a8143ef99a4b074a","commit_message":"bodyprog: fixups, remove hack from `Demo_Update`\n\nNot sure about the 0x800FEE00 address, we have DEMO_WORK define pointing to 0x800FDE00 which is 0x1000 away from it\nBut DEMO_WORK struct is only 0x800, so ends at 0x800FE600.\nThough there are also some mentions of 0x800FE600 with similar Fs_FileGetSize calls...\nPossibly DEMO_WORK is meant to be larger, and those calls are accessing something inside it?","measures":{"fuzzy_match_percent":16.993116,"total_code":2879592,"matched_code":488128,"matched_code_percent":16.95129,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3041,"matched_functions_percent":46.47715,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-21T06:43:18Z","commit_sha":"564c05242a129e3afa4092a2ef4ec4dc69682cfe","commit_message":"bodyprog: 9 matches\n\nDid some minor adjustments for some function as part of symbol recognition that I didn't finished and added a lot of new matches.\n\n- func_80037DC4\n@belek666\n@Sezzary\n\n- func_80038A6C\n@belek666\n\n- func_80038B44\n@belek666\n@Sezzary\n\n- func_8003C1AC\n@belek666\n@Wezax\n\n- func_8003C30C\n@belek666\n\n- func_8003C3AC\n@belek666\n\n- func_8003C92C\n@belek666\n\n- func_8003D550\n@belek666\n\n- func_80054CAC\n@emoose\n@Sezzary\n@fmil95\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Wezax <Wezax@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>\nCo-Authored-By: emoose <emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.99313,"total_code":2879592,"matched_code":488628,"matched_code_percent":16.968655,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3042,"matched_functions_percent":46.49243,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-21T01:04:28Z","commit_sha":"bb718dd3962d59acb7a7b5f010b5eed8eeeaca58","commit_message":"bodyprog: reorganization of main header file and 19 matches... wait 19 MATCHES!?\n\nSurprinsingly there were another 17 matched functions or almost matched (only needing some minor touch ups) to be added. I also decompiled two minor functions I found.\n\nThanks to @Mc-muffin for helping with to fix two intances of fake missmatch.\n\n- func_80042178\n@fmil95\n@Sezzary\n\n- func_80044918\n@emoose\n\n- func_8004BD74\n@belek666\n@Sezzary\n\n- func_800557DC\n@Sezzary\n\n- func_800560FC\n@belek666\n\n- func_80056504\n@belek666\n\n- func_800571D0\n@emoose\n\n- func_8005B370\n@Sezzary\n\n- func_8005B3BC\n@Sezzary\n@emoose\n\n- func_8005B424\n@karas84\n@Sezzary\n\n- func_8005DD44\n@fmil95\n\n- func_8005F680\nMe\n\n- func_800699E4\nMe\n\n- func_8006BC34\n@Sezzary\n\n- func_8007029C\n@Sezzary\n\n- func_8008989C\n@belek666\n@Sezzary\n\n- func_80089D0C\n@emoose\n\n- func_8008B664\n@Sezzary\n\n- func_800917C0\n@emoose\n@Sezzary\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>\nCo-Authored-By: emoose <emoose@users.noreply.github.com>\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.87867,"total_code":2879592,"matched_code":485332,"matched_code_percent":16.854195,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3033,"matched_functions_percent":46.354885,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-21T00:06:28Z","commit_sha":"f503842ef188e3137a76665d172583e67a5e82f4","commit_message":"bodyprog: remove temp var from `GameState_Unk0_Update`","measures":{"fuzzy_match_percent":16.787247,"total_code":2879592,"matched_code":481152,"matched_code_percent":16.709034,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3013,"matched_functions_percent":46.049213,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-21T00:01:01Z","commit_sha":"aa9bf60f1c320f76ca199e66ea26d5432f228c15","commit_message":"bodyprog: rodata migrate `bodyprog_800314EC`, match 2 funcs (#196)\n\n* bodyprog: rodata migrate `bodyprog_800314EC`, add `globals` split\n\nSome of the rodata between `800314EC` funcs was for `g_GameWorkConst` /\n`g_SavegamePtr` etc, didn't make sense to have those being inited part\nway through a .c, so split those into globals.c file\n\n(looks like there's a bunch of stage/map data between globals.c and the\nnext .c too, haven't tried to add that in yet though)\n\nNoticed there's sometimes weird unused bytes in .rodata too, even\nbodyprog itself starts with 4 unused bytes at 80024B60, wonder if those\nwere something compiler inserted between rodata of different files,\nmaybe can help indicate rodata splits for us\n\n* bodyprog: rodata migrate `GameState_MainMenu_Update`\n\nCould only make this work with new file split, odd\n\n* bodyprog: trim includes\n\n* bodyprog: match `func_8003CDA0`, migrate rest of 8003AB28 rodata\n\n* bodyprog: fixups\n\n* bodyprog: fix nonmatching `func_8003BAC4`, small fixups\n\n* bodyprog: fixups, add .rodata todos","measures":{"fuzzy_match_percent":16.787247,"total_code":2879592,"matched_code":481152,"matched_code_percent":16.709034,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3013,"matched_functions_percent":46.049213,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-07-20T00:11:09Z","commit_sha":"e9484c4c1e159366bfcfaab98e7bfb3aea6759a5","commit_message":"memcard: add `CARD_DEVICE_COUNT` `CARD_DEVICE_FILE_COUNT`","measures":{"fuzzy_match_percent":16.763508,"total_code":2879592,"matched_code":480212,"matched_code_percent":16.67639,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3011,"matched_functions_percent":46.018646,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T23:45:18Z","commit_sha":"983f73874428fad6ad0dc12d606b86bbcd748122","commit_message":"memcard: match 2 funcs, update func params/header","measures":{"fuzzy_match_percent":16.763508,"total_code":2879592,"matched_code":480212,"matched_code_percent":16.67639,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3011,"matched_functions_percent":46.018646,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T22:46:18Z","commit_sha":"dc0c8f8f597fd4d4de6c2a20485d0e9cbf509c37","commit_message":"memcard: match `func_8002F2C4`","measures":{"fuzzy_match_percent":16.75184,"total_code":2879592,"matched_code":479876,"matched_code_percent":16.664722,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3009,"matched_functions_percent":45.98808,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T21:45:46Z","commit_sha":"242261ae3e70bee54fccfb3f16dc803e82fba4ae","commit_message":"memcard: add size asserts, `CardWork_ClearDirectoryFile` inline\n\nInline would explain the early data in rodata, but probably isn't ever\nactually used outside Savegame_CardState_DirRead..","measures":{"fuzzy_match_percent":16.722113,"total_code":2879592,"matched_code":479020,"matched_code_percent":16.634996,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3008,"matched_functions_percent":45.972794,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T21:41:48Z","commit_sha":"7ff2055b6b508416d0db8d2dfd0dfae4faa58d2d","commit_message":"bodyprog: 11 matches\n\nAdded A LOT of functions that were matched a long time ago in decomp.me. Some of them needed minor touch ups as they were matched with outdated contexts and in one case I added a bit of context for the argument of a function.\n\nAlso added one that is almost matched and some that when inserted generate missmatches.\n\nMatches & credits:\n- func_80036B5C\n@belek666\n@Sezzary\n\n- func_800378D4\n@belek666\n@emoose\n@Sezzary\n\n- func_8003BAC4\n@belek666\n@Sezzary\n\n- func_8003BBF4\n@belek666\n@Wezax\n\n- func_8003BD48\n@emoose\n@karas84\n@belek666\n\n- func_8003BF60\n@belek666\n@Sparagas\n\n- func_8003C048\n@belek666\n\n- func_8003C0C0\n@belek666\n\n- func_8003C110\n@fmil95\n@belek666\n\n- func_8003C368\n@emoose\n@Sezzary\n\n- func_8003D5B4\n@fmil95\n@Sezzary\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: Sparagas <Sparagas@users.noreply.github.com>\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>\nCo-Authored-By: emoose <emoose@users.noreply.github.com>\nCo-Authored-By: Wezax <Wezax@users.noreply.github.com>\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.722113,"total_code":2879592,"matched_code":479020,"matched_code_percent":16.634996,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3008,"matched_functions_percent":45.972794,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T21:27:59Z","commit_sha":"64dbaa196dae734f8ca1c9bf2bd659bbec3e4a22","commit_message":"memcard: use `e_CardIoMode`, build fix","measures":{"fuzzy_match_percent":16.656727,"total_code":2879592,"matched_code":477252,"matched_code_percent":16.573597,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3000,"matched_functions_percent":45.85053,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T21:00:57Z","commit_sha":"74f2a74c2d88c79b03014111167a79bcd24d2b97","commit_message":"memcard: match `func_8002F61C`, migrate rodata, reupdate `s_800B5508`\n\nidk why `s_800B5508` was reverted, but it's needed for that func\n\nI'd guess s_SaveWork could be better name since it holds all savedata\nrelated things","measures":{"fuzzy_match_percent":16.656727,"total_code":2879592,"matched_code":477252,"matched_code_percent":16.573597,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":3000,"matched_functions_percent":45.85053,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T12:04:14Z","commit_sha":"5e1ab083da14dfdc4ba162a7cc687e8b97d71efb","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":16.608948,"total_code":2879592,"matched_code":475556,"matched_code_percent":16.5147,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2998,"matched_functions_percent":45.819958,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T00:25:19Z","commit_sha":"2609ae21319d4a8e8b2439fae99bb9d1dc45d85e","commit_message":"memcard: minor comment fix","measures":{"fuzzy_match_percent":16.609776,"total_code":2879592,"matched_code":475900,"matched_code_percent":16.526648,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2999,"matched_functions_percent":45.835243,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-19T00:10:36Z","commit_sha":"768cc001a30500eec64840464673cf031f9ccf40","commit_message":"memcard: documentation and match\n\nDocumented the strange method used by some functions to access to global variables and structs.\n\nI was going to add a three matches, but @emoose was faster. I hope the changes I was going to do doesn't causes any problem.\n\n- func_8002FDB0\n@Mc-muffin\n@polybiusproxy\n@fmil95\n\n- func_8002ED7C\n@belek666\n@Sezzary\n\n@emoose I hope you hit your little toe against the table /j\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: Mc-muffin <Mc-muffin@users.noreply.github.com>\nCo-Authored-By: polybiusproxy <polybiusproxy@users.noreply.github.com>\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.609776,"total_code":2879592,"matched_code":475900,"matched_code_percent":16.526648,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2999,"matched_functions_percent":45.835243,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T23:56:40Z","commit_sha":"5a7490360bfa06324e7a2a588cc0f830910c7f68","commit_message":"memcard: documentation and match\n\nDocumented the strange method used by some functions to access to global variables and structs.\n\nI was going to add a three matches, but @emoose was faster. I hope the changes I was going to do doesn't causes any problem.\n\n- func_8002FDB0\n@Mc-muffin\n@polybiusproxy\n@fmil95\n\n@emoose I hope you hit your little toe against the table /j","measures":{"fuzzy_match_percent":16.609776,"total_code":2879592,"matched_code":475900,"matched_code_percent":16.526648,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2999,"matched_functions_percent":45.835243,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T23:22:56Z","commit_sha":"351b466f4d0ecdd2a4a35d30782a7edc04a2a392","commit_message":"memcard: remove duplicated code","measures":{"fuzzy_match_percent":16.558796,"total_code":2879592,"matched_code":474432,"matched_code_percent":16.475668,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2997,"matched_functions_percent":45.804676,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T23:18:33Z","commit_sha":"29434f186f3b58e4176720a5d35a0a071ed845b9","commit_message":"bodyprog: match `func_8002EB88` (needs rodata), update `s_800B5508`\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: Mc-muffin <Mc-muffin@users.noreply.github.com>\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.558796,"total_code":2879592,"matched_code":474432,"matched_code_percent":16.475668,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2997,"matched_functions_percent":45.804676,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T22:17:14Z","commit_sha":"49449d34c05242588133dfd34adeb8f52748dfa5","commit_message":"bodyprog: match `func_80047B80`\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.54685,"total_code":2879592,"matched_code":474088,"matched_code_percent":16.46372,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2996,"matched_functions_percent":45.789394,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T22:02:36Z","commit_sha":"af46026960cabcc49f6b5ae985e186e6de40ab6f","commit_message":"bodyprog: match `func_80047308` and `func_80046E00`, resuppress warnings\n\nwarnings make it harder to see actual build errors, too bad\nmaybe a makefile option for them would be useful instead\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.532541,"total_code":2879592,"matched_code":473676,"matched_code_percent":16.449413,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2995,"matched_functions_percent":45.774113,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T20:46:56Z","commit_sha":"57e0f3ccdfa12fa0a2ca81727a70ca930cdde194","commit_message":"Build fix","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T20:25:02Z","commit_sha":"56051b3792fd8dadad7291343690e60003577d35","commit_message":"More func defs to fix implicit refs, don't suppress warnings\n\nSome warnings can be useful to know when wrong types or missing funcs\nare used, not really much point in suppressing them (unless they break\nbuild checks?)","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T20:23:17Z","commit_sha":"7bc9b9adaf991e3ec2f836f5219f483fe5a03dfd","commit_message":"More func defs to fix implicit refs, don't suppress warnings\n\nSome warnings can be useful to know when wrong types or missing funcs\nare used, not really much point in suppressing them (unless they break\nbuild checks?)","measures":{"fuzzy_match_percent":41.982265,"total_code":453348,"matched_code":187932,"matched_code_percent":41.454247,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":1299,"matched_functions":884,"matched_functions_percent":68.052345,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":30,"complete_units":0}},{"timestamp":"2025-07-18T20:17:57Z","commit_sha":"7c99b2f2a3df29b80d5dc2f305094fa36c8e341a","commit_message":"Add func defs to fix implicit func references","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T19:24:24Z","commit_sha":"e05279de751a7f711a93736c06368c71dc221ea1","commit_message":"bodyprog: .rodata migrate `vcMakeNewBaseCamAng`","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T19:12:13Z","commit_sha":"947ebabc3ed9b3d15e27521ae282574f37dd8be7","commit_message":"bodyprog: .rodata migrate `func_80085EB8`","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T16:36:46Z","commit_sha":"4891c0689e6df2bfc55a33d34696651232ea4907","commit_message":"Minor fixups part 2\n\nForgot to save >.>","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T16:34:25Z","commit_sha":"3a458eeac07ff7e6f52e44eafdd204ac6bdfcf5f","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T15:28:42Z","commit_sha":"9e2ffe60b7fe1c7e7ad7c687583e88c3dc5f90fa","commit_message":"bodyprog: move text_draw/demo decls to separate headers\n\nrenamed headers to match the .c file where there's only a single .c for\nthem","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-18T03:03:54Z","commit_sha":"63ee795ec48338554aa0ced9e650d12f141a4b98","commit_message":"Misc: compilation test","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-17T20:05:26Z","commit_sha":"6e0675c50963420bf1751ce1fe17ece13be06682","commit_message":"build fix (#195)\n\n* Bodyprog matches\n\n* more matches\n\n* fix build\n\n* fix build2","measures":{"fuzzy_match_percent":16.464754,"total_code":2879592,"matched_code":471724,"matched_code_percent":16.381626,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2993,"matched_functions_percent":45.74354,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-17T10:51:22Z","commit_sha":"977c8ee78ff9796df203847ae7b576e127e12c98","commit_message":"Use `FP_ALPHA` instead","measures":{"fuzzy_match_percent":16.365185,"total_code":2879592,"matched_code":467596,"matched_code_percent":16.238272,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2979,"matched_functions_percent":45.529575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-17T10:43:26Z","commit_sha":"ca822fae83cf16b48e15e8e66d078cfbbc472dd3","commit_message":"Name local variables, demagic fixed-point values","measures":{"fuzzy_match_percent":16.365185,"total_code":2879592,"matched_code":467596,"matched_code_percent":16.238272,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2979,"matched_functions_percent":45.529575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-16T16:17:55Z","commit_sha":"2519ad712101c885381a242068c063935a31736b","commit_message":"Bodyprog matches (#192)\n\n* Bodyprog matches\n\nCo-Authored-By: Sezz <65776527+Sezzary@users.noreply.github.com>\n\n* Bodyprog matches\n\nCo-Authored-By: Deepak Sharma <deepak.takumi.120@gmail.com>\n\n---------\n\nCo-authored-by: Sezz <65776527+Sezzary@users.noreply.github.com>\nCo-authored-by: Deepak Sharma <deepak.takumi.120@gmail.com>","measures":{"fuzzy_match_percent":16.364122,"total_code":2879592,"matched_code":467596,"matched_code_percent":16.238272,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2979,"matched_functions_percent":45.529575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-16T06:47:05Z","commit_sha":"c5bbd6f18bef661f0952fa0b5ec82b9fa075b900","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-16T01:39:36Z","commit_sha":"97df36641004bc0faf41f74eedbf90dd00d96690","commit_message":"memcard: name `g_CardWork`, minor fixups","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-16T01:14:25Z","commit_sha":"889edac227982ad5e11cfc4d5181227846c4dd77","commit_message":"Save_system: symbol recognition + documentation\n\nAnd again adjusted splits so now `bodyprog.c` and `save.c` are now mixed in `memcard.c`. I specifically named like that as most of functions are related to general handling of memory card rather than specific game saving stuff.","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":93,"complete_units":0}},{"timestamp":"2025-07-16T00:06:11Z","commit_sha":"f7a9b1d405be3d26d883683c974379f95f16097f","commit_message":"Add `create_compile_commands.py` to allow VSCode clangd features\n\n(such as \"go to definition\", \"find all references\", etc)\n\nThis lets the \"Kylin clangd\" extension work with project for me\n\nSadly even though all files use mostly same includes/flags, wasn't able to\nmake it work with a global .clangd file instead :(\n\n(if an easier way to get VSCode features working is found I'm happy to\ndrop these though)","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-15T20:13:22Z","commit_sha":"bbd4a729a4f00ea920af183bbe44d06a4a4f6d1b","commit_message":"save_system: naming","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-15T18:44:39Z","commit_sha":"83b61374fbbbd93180a61cc2bfe60d940948bbe7","commit_message":"save_system: naming","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-15T17:51:31Z","commit_sha":"07e897a6b7e83d37537a94f089e6b1514b08822a","commit_message":"save_system: move `s_800B5488` to `save_system.h`","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-15T17:36:26Z","commit_sha":"9440dd5d724eadd08a2068bf9b18eced6569aba3","commit_message":"save_system: name `e_CardState` and state funcs","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-15T17:02:33Z","commit_sha":"144237b01fab1cb814bd5127b5f46643c10d06d9","commit_message":"bodyprog: minor fixups","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-15T16:02:22Z","commit_sha":"eb19ba9c1178192f1c5e1d9da05a0d855cf5b0a4","commit_message":"build fix","measures":{"fuzzy_match_percent":16.232576,"total_code":2879592,"matched_code":463808,"matched_code_percent":16.106726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2965,"matched_functions_percent":45.315605,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-14T23:10:48Z","commit_sha":"9b82b2715867135cfba851e6ece75f9c598fb1c6","commit_message":"save_system: match 8 funcs\n\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":16.115643,"total_code":2879592,"matched_code":459824,"matched_code_percent":15.968373,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2954,"matched_functions_percent":45.147484,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-14T06:13:48Z","commit_sha":"5952bfd17cc00dc3a68cbeeb70689d09a2f497d5","commit_message":"Symbol recognition + Partial `SAVELOAD.BIN` data migration\n\nTried to do data migration, while definitively improving as now all RODATA segment is covered, for some reason `D_801E7584` causes a shift in some of the lastest variables from DATA segment.","measures":{"fuzzy_match_percent":16.022573,"total_code":2879592,"matched_code":457144,"matched_code_percent":15.875305,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2946,"matched_functions_percent":45.02522,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-13T05:12:19Z","commit_sha":"d9e9510f1c6a01a04cf89a148fb359f722ebc5a2","commit_message":"Symbol recognition\n\nAnd a minor function match somewhere in bodyprog","measures":{"fuzzy_match_percent":16.022573,"total_code":2879592,"matched_code":457144,"matched_code_percent":15.875305,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2946,"matched_functions_percent":45.02522,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-12T02:36:32Z","commit_sha":"fb8edb39770a2214b642b45b24fd8c4db8956ca8","commit_message":"compilation fix","measures":{"fuzzy_match_percent":16.019102,"total_code":2879592,"matched_code":457044,"matched_code_percent":15.871832,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2945,"matched_functions_percent":45.009933,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-12T02:26:42Z","commit_sha":"37c35a73a65654ab6428dc3802e2b5ed4aef9d04","commit_message":"Item screens: reorganization","measures":{"fuzzy_match_percent":16.019102,"total_code":2879592,"matched_code":457044,"matched_code_percent":15.871832,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2945,"matched_functions_percent":45.009933,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-12T01:39:40Z","commit_sha":"e2fc3f0dbb5c6b7a33851fc306fc48fa9400f32d","commit_message":"bodyprog: match `func_80043B34`","measures":{"fuzzy_match_percent":16.019102,"total_code":2879592,"matched_code":457044,"matched_code_percent":15.871832,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2945,"matched_functions_percent":45.009933,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-12T00:56:58Z","commit_sha":"7fee0d73c650437879e27fd8272572391314ef03","commit_message":"bodyprog: match `func_8004137C`","measures":{"fuzzy_match_percent":16.017017,"total_code":2879592,"matched_code":456984,"matched_code_percent":15.869749,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2944,"matched_functions_percent":44.994648,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-12T00:27:06Z","commit_sha":"546627d1881c22eaab70b841feba94760703dcd0","commit_message":"bodyprog: minor fixup","measures":{"fuzzy_match_percent":15.992987,"total_code":2879592,"matched_code":456292,"matched_code_percent":15.845717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2942,"matched_functions_percent":44.964085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-12T00:14:16Z","commit_sha":"84954556304090279718c5c89d22e581b403ba13","commit_message":"bodyprog: more `s_800BCE18_2BEC` bitfields","measures":{"fuzzy_match_percent":15.992987,"total_code":2879592,"matched_code":456292,"matched_code_percent":15.845717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2942,"matched_functions_percent":44.964085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-12T00:01:58Z","commit_sha":"4e724e6fecb7b7c2d3a237723f1c3fee4a49b4a0","commit_message":"bodyprog: add bitfield to `s_800BCE18_2BEC`","measures":{"fuzzy_match_percent":15.992987,"total_code":2879592,"matched_code":456292,"matched_code_percent":15.845717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2942,"matched_functions_percent":44.964085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-11T23:42:17Z","commit_sha":"eca3ff5f4cec0d46c63f6ec5845631ebe7d1f3a8","commit_message":"bodyprog: match 2 funcs","measures":{"fuzzy_match_percent":15.992987,"total_code":2879592,"matched_code":456292,"matched_code_percent":15.845717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2942,"matched_functions_percent":44.964085,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-11T23:25:10Z","commit_sha":"ea76036240f22d720b17130076e60c15dea3eac5","commit_message":"bodyprog: match 2 funcs","measures":{"fuzzy_match_percent":15.9807625,"total_code":2879592,"matched_code":455940,"matched_code_percent":15.833492,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2940,"matched_functions_percent":44.933517,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-11T22:44:34Z","commit_sha":"abf5c866c33da358b7fda13d81d8960623ce3678","commit_message":"bodyprog: update `s_800BCE18_0::field_18`","measures":{"fuzzy_match_percent":15.969928,"total_code":2879592,"matched_code":455628,"matched_code_percent":15.822658,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2938,"matched_functions_percent":44.90295,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-11T22:32:35Z","commit_sha":"bcf9a1eb760acb8a647c52cb28042b82c8e1171d","commit_message":"bodyprog: match `func_80040B74`\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.969928,"total_code":2879592,"matched_code":455628,"matched_code_percent":15.822658,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2938,"matched_functions_percent":44.90295,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-11T14:07:20Z","commit_sha":"08a45651a458065e356e23d3b02f52bf15298b59","commit_message":"bodyprog: match `func_80089128`\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.967983,"total_code":2879592,"matched_code":455572,"matched_code_percent":15.820713,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2937,"matched_functions_percent":44.887665,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-11T06:38:34Z","commit_sha":"e0cb83f78d3167866e9ab71834a0ea0206f3ba07","commit_message":"INVENTORY | Symbol recognition\n\nAlso did two matches and implemented another partially done by @Sezzary (`func_800549A0`)","measures":{"fuzzy_match_percent":15.954786,"total_code":2879592,"matched_code":455192,"matched_code_percent":15.807517,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2936,"matched_functions_percent":44.872383,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-10T12:37:02Z","commit_sha":"6a3f67ab1a99394a3aeb995de62e93e94e43d8e0","commit_message":"bodyprog: match `func_8003FD38`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.945341,"total_code":2879592,"matched_code":454920,"matched_code_percent":15.798071,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2933,"matched_functions_percent":44.82653,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-10T12:13:29Z","commit_sha":"a3a459081585f0c6d4bc1f5b578a81883923e703","commit_message":"bodyprog: match `func_8003FE04`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.938256,"total_code":2879592,"matched_code":454716,"matched_code_percent":15.790987,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2932,"matched_functions_percent":44.81125,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-10T12:02:46Z","commit_sha":"0401ffbb230f1946bef2eb9ee662fdf22ae1efb8","commit_message":"bodyprog: match `SysState_LoadArea_Update`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.931727,"total_code":2879592,"matched_code":454528,"matched_code_percent":15.784459,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2931,"matched_functions_percent":44.795967,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-10T11:50:25Z","commit_sha":"03d4bde219917a85d129f6553177433a935c0446","commit_message":"bodyprog: match `func_8003FEC0`, update names\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.905613,"total_code":2879592,"matched_code":453776,"matched_code_percent":15.758343,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2930,"matched_functions_percent":44.78068,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-10T06:42:46Z","commit_sha":"3fe65508313daa282df5946255812f096c853629","commit_message":"ITEM SCREENS | Symbol recognition\n\nAlso merge more functions that I can recognize as part of the same system in `item_screens.c` from `bodyprog_8004A87C.c`","measures":{"fuzzy_match_percent":15.902557,"total_code":2879592,"matched_code":453776,"matched_code_percent":15.758343,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2930,"matched_functions_percent":44.78068,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-10T06:27:31Z","commit_sha":"a36d703efb76d43e95ea702111cb67317f0c407b","commit_message":"bodyprog: match `func_80039F54`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.8949175,"total_code":2879592,"matched_code":453556,"matched_code_percent":15.750703,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2929,"matched_functions_percent":44.765396,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-10T06:18:42Z","commit_sha":"bae5ee79be9e4ecfa43c46956440ff020327d5b0","commit_message":"bodyprog: match `SysState_ReadMessage_Update`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.892834,"total_code":2879592,"matched_code":453496,"matched_code_percent":15.74862,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2928,"matched_functions_percent":44.750114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T13:28:56Z","commit_sha":"dc6ca174f4d9ea79c6f6b4f9eaf8e6c9fa0b908f","commit_message":"bodyprog: match `func_8003B568`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.880332,"total_code":2879592,"matched_code":453136,"matched_code_percent":15.736118,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2927,"matched_functions_percent":44.73483,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T13:15:03Z","commit_sha":"db8bf37598f474475d75fba1ff32f6ab63e5849d","commit_message":"Update `s_ShSavegame`","measures":{"fuzzy_match_percent":15.870886,"total_code":2879592,"matched_code":452864,"matched_code_percent":15.726672,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2926,"matched_functions_percent":44.719547,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T09:31:51Z","commit_sha":"972404ee828c6c01c880dbe58aff2248f5fc55a4","commit_message":"bodyprog: match `SysState_OptionsMenu_Update`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.870886,"total_code":2879592,"matched_code":452864,"matched_code_percent":15.726672,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2926,"matched_functions_percent":44.719547,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T09:24:28Z","commit_sha":"574bedba64c5546bab75247d626c80f4904033c6","commit_message":"bodyprog: match `SysState_Unk3_Update`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.862273,"total_code":2879592,"matched_code":452616,"matched_code_percent":15.7180605,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2925,"matched_functions_percent":44.704266,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T09:06:03Z","commit_sha":"8a980b77f8fef6854dc1b433128dfaf606324e87","commit_message":"bodyprog: match 2 functions","measures":{"fuzzy_match_percent":15.841993,"total_code":2879592,"matched_code":452032,"matched_code_percent":15.697779,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2924,"matched_functions_percent":44.68898,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T08:13:19Z","commit_sha":"ef5815b02cb8c9f6c3f320896f83b88db0f9a090","commit_message":"bodyprog: match `SysState_Gameplay_Update`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.83727,"total_code":2879592,"matched_code":451896,"matched_code_percent":15.693056,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2922,"matched_functions_percent":44.658413,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T06:00:30Z","commit_sha":"8a8ebd61f70b4038faa03fe91fef784ff8f1c6fe","commit_message":"save_system: match 2 funcs, migrate save.c rodata\n\nCo-Authored-By: Mc-muffin <Mc-muffin@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.815767,"total_code":2879592,"matched_code":451896,"matched_code_percent":15.693056,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2922,"matched_functions_percent":44.658413,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-09T01:37:51Z","commit_sha":"7341a3c1fb0ebb1c37fa0a718b622f355c934aab","commit_message":"save_system: match `func_800300B4`, add SJIS .i conversion\n\nEncoding .c as SJIS did also build matching, but splat only supports read\nfrom UTF-8 files :(\nConversion before build was recommended at https://github.com/ethteck/splat/issues/431\n\nImplemented that by converting pre-processed .i files to SJIS before running\ncompiler\n(piping iconv also worked, but then compiler wouldn't know source file\npath...)\n\nMost of save.c rodata is added, need to match `func_800308E4` for us to add\nthe rest\n\nCo-Authored-By: Mc-muffin <Mc-muffin@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.795209,"total_code":2879592,"matched_code":451304,"matched_code_percent":15.672498,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2920,"matched_functions_percent":44.627846,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T23:08:58Z","commit_sha":"2d35a6fb030f184a1c2831a48afedd0d87de8c89","commit_message":"bodyprog: cleanup unused save_system externs","measures":{"fuzzy_match_percent":15.778956,"total_code":2879592,"matched_code":450836,"matched_code_percent":15.656246,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2919,"matched_functions_percent":44.612564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T23:06:04Z","commit_sha":"3f1f332bee4bc4529a4a06246d2fa77b6973a728","commit_message":"bodyprog matches (#190)\n\nCo-Authored-By: Sezzary <Sezzary@users.noreply.github.com>\nCo-Authored-By: iwereth <iwereth@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.778956,"total_code":2879592,"matched_code":450836,"matched_code_percent":15.656246,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2919,"matched_functions_percent":44.612564,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T20:56:40Z","commit_sha":"90ab26c83d6226328ce9a54011dba385c9aebf66","commit_message":"save_system: match `func_80030A0C` (needs rodata), fix `D_800B5488` size","measures":{"fuzzy_match_percent":15.7382555,"total_code":2879592,"matched_code":449664,"matched_code_percent":15.615545,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2916,"matched_functions_percent":44.56671,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T20:43:32Z","commit_sha":"707ef972af9a99961de63e4eb7dc02019d9586a7","commit_message":"save_system: match 4 funcs\n\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.731172,"total_code":2879592,"matched_code":449460,"matched_code_percent":15.608461,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2915,"matched_functions_percent":44.55143,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T16:19:12Z","commit_sha":"cd07f2afc703281eb8ce92aee7b9918070dc410d","commit_message":"bodyprog: match `SysState_SaveMenu_Update`","measures":{"fuzzy_match_percent":15.716031,"total_code":2879592,"matched_code":449024,"matched_code_percent":15.59332,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2911,"matched_functions_percent":44.490295,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T09:48:01Z","commit_sha":"bdb99e918ec6b8a2ca0afe662e4374aa9c77b7be","commit_message":"bodyprog: match `SysState_StatusMenu_Update`","measures":{"fuzzy_match_percent":15.701862,"total_code":2879592,"matched_code":448616,"matched_code_percent":15.579152,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2910,"matched_functions_percent":44.47501,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T09:24:42Z","commit_sha":"847107ef65784f0f99398adca4eef8dd4f50337b","commit_message":"bodyprog: match `func_800382B0`\n\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.698806,"total_code":2879592,"matched_code":448528,"matched_code_percent":15.576096,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2909,"matched_functions_percent":44.45973,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-08T04:16:37Z","commit_sha":"9749c9f75b24797278a381813baab67d5d46f9a0","commit_message":"bodyprog: match `func_800365B8`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.696722,"total_code":2879592,"matched_code":448468,"matched_code_percent":15.574011,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2908,"matched_functions_percent":44.444447,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T23:57:18Z","commit_sha":"565dc1c1ec4c50388d9d431d45ae64843f8b0ec1","commit_message":"save_system: name `Savegame_DevicePathGenerate`, use char* for paths","measures":{"fuzzy_match_percent":15.646576,"total_code":2879592,"matched_code":447024,"matched_code_percent":15.523866,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2907,"matched_functions_percent":44.42916,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T23:32:11Z","commit_sha":"c58a05614f382c56fa63a973d8149a1c02e319cf","commit_message":"bodyprog: match `func_80030370`\n\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.646576,"total_code":2879592,"matched_code":447024,"matched_code_percent":15.523866,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2907,"matched_functions_percent":44.42916,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T23:24:35Z","commit_sha":"b850840e2878a348cf722ebd394ecf3485d4d360","commit_message":"bodyprog: match `Savegame_FilenameGenerate`\n\nCo-Authored-By: fmil95 <fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.642548,"total_code":2879592,"matched_code":446908,"matched_code_percent":15.519838,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2906,"matched_functions_percent":44.413876,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T23:18:48Z","commit_sha":"7cb632f4ac6f38a7ed180a1813d9cbee415f2c98","commit_message":"fix nonmatchings, add match (#189)","measures":{"fuzzy_match_percent":15.636297,"total_code":2879592,"matched_code":446728,"matched_code_percent":15.513587,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2905,"matched_functions_percent":44.398594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T14:21:00Z","commit_sha":"6b132823e45be2eb451cd39e95cc47e7d74aa46f","commit_message":"bodyprog: match `func_80036B5C`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.622628,"total_code":2879592,"matched_code":442844,"matched_code_percent":15.378706,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2902,"matched_functions_percent":44.35274,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T11:50:28Z","commit_sha":"67e38c38872ea78c959e4af89d45c55b6bc31183","commit_message":"bodyprog: match 2 functions\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.597716,"total_code":2879592,"matched_code":442844,"matched_code_percent":15.378706,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2902,"matched_functions_percent":44.35274,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T11:31:48Z","commit_sha":"cb121c6f3615a169ba5ac22096b71085e5cc6ea0","commit_message":"bodyprog: match `func_80035F4C`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.588965,"total_code":2879592,"matched_code":442592,"matched_code_percent":15.369955,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2900,"matched_functions_percent":44.322178,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T10:15:42Z","commit_sha":"2952c4adb869ec36245cfd7b5ed5672c45e1c2ed","commit_message":"bodyprog: match `func_80035E44`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.5488205,"total_code":2879592,"matched_code":441436,"matched_code_percent":15.329811,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2899,"matched_functions_percent":44.306892,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T10:12:25Z","commit_sha":"0b29f41c5aa7d514cc14c35b3b7dca0a6d059862","commit_message":"bodyprog: match `func_8003569C`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.543959,"total_code":2879592,"matched_code":441296,"matched_code_percent":15.324948,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2898,"matched_functions_percent":44.29161,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T09:16:53Z","commit_sha":"1a342439b9bc91690b8f946c751b4877db10a09d","commit_message":"bodyprog: match `func_80035560`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.536041,"total_code":2879592,"matched_code":441068,"matched_code_percent":15.317032,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2897,"matched_functions_percent":44.276325,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T08:59:00Z","commit_sha":"ea7d25899b2d2ce96195303fc3ec9993ab391b61","commit_message":"bodyprog: match `func_80035338`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.525067,"total_code":2879592,"matched_code":440752,"matched_code_percent":15.306057,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2896,"matched_functions_percent":44.26104,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T08:12:38Z","commit_sha":"6ac225d3e8cc03890e8bf9ba5bffae96a499e88c","commit_message":"bodyprog: match `func_800895E4`\n\n`s_SysWork_2514` needs more work\n(just copied the existing `s32 field_2514[10]` for it)\n\nLooks like func_800890B8 passes it to some `lib_unk/lib_8009E198` funcs\nThose are all set as `asm` right now but a few might be C code","measures":{"fuzzy_match_percent":15.507037,"total_code":2879592,"matched_code":442404,"matched_code_percent":15.363426,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2897,"matched_functions_percent":44.276325,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T07:51:09Z","commit_sha":"25c7eb0fea0c9c9be34fba6f810f8dffca2e2d6d","commit_message":"bodyprog: match `func_80034964`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: Deepak Sharma <deepak.takumi.120@gmail.com>","measures":{"fuzzy_match_percent":15.506322,"total_code":2879592,"matched_code":442308,"matched_code_percent":15.360093,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2896,"matched_functions_percent":44.26104,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-07T05:01:24Z","commit_sha":"e1454bcac63afdf7aa6bfd2e3d5dba4bdf26fa69","commit_message":"bodyprog: match `Joy_ControllerDataUpdate`\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.462288,"total_code":2879592,"matched_code":441040,"matched_code_percent":15.316059,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2895,"matched_functions_percent":44.245758,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T13:18:13Z","commit_sha":"2d3cb1b8af38b79f2e9f020972e2706119bfe537","commit_message":"libsd: type fixups","measures":{"fuzzy_match_percent":15.445758,"total_code":2879592,"matched_code":440564,"matched_code_percent":15.299529,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2894,"matched_functions_percent":44.230476,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T12:30:10Z","commit_sha":"53850a13e0acbf08bda5d65bce92d5b65bb9f356","commit_message":"More func def fixups","measures":{"fuzzy_match_percent":15.445758,"total_code":2879592,"matched_code":440564,"matched_code_percent":15.299529,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2894,"matched_functions_percent":44.230476,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T12:05:38Z","commit_sha":"ad74bc1c0c7e3ad34811726add353f4b2c1f0305","commit_message":"Update func prototypes to remove redundant `& 0xFF` / `& 0xFFFF`\n\nProbably still a few I missed here","measures":{"fuzzy_match_percent":15.445758,"total_code":2879592,"matched_code":440564,"matched_code_percent":15.299529,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2894,"matched_functions_percent":44.230476,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T10:33:54Z","commit_sha":"d50c916c630dff7088abf329719cb62bfff0985b","commit_message":"bodyprog: match `func_8003943C`","measures":{"fuzzy_match_percent":15.445758,"total_code":2879592,"matched_code":440564,"matched_code_percent":15.299529,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2894,"matched_functions_percent":44.230476,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T09:24:17Z","commit_sha":"83f553110931725cdb8b1ecaf1806dc6cf341938","commit_message":"Update `s__SubCharacter`","measures":{"fuzzy_match_percent":15.43534,"total_code":2879592,"matched_code":440264,"matched_code_percent":15.28911,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2893,"matched_functions_percent":44.21519,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T04:40:48Z","commit_sha":"f5f6f47be6a2210a6c07c35c2971076cad3a6326","commit_message":"bodyprog: match `func_8003F654`, demagicking, add function decls,\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.43534,"total_code":2879592,"matched_code":440264,"matched_code_percent":15.28911,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2893,"matched_functions_percent":44.21519,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T02:20:15Z","commit_sha":"ce013c803ba198acb51158646cf594cacea74211","commit_message":"bodyprog: add fields used by `func_8004C328`","measures":{"fuzzy_match_percent":15.429922,"total_code":2879592,"matched_code":440108,"matched_code_percent":15.283693,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2892,"matched_functions_percent":44.19991,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T02:16:31Z","commit_sha":"a2028e9a9dddc8a6c6ae501b378254db8371821c","commit_message":"bodyprog: match `func_8004C328`, minor fixups\n\nCo-Authored-By: belek666 <belek666@users.noreply.github.com>\nCo-Authored-By: iwereth <iwereth@users.noreply.github.com>\nCo-Authored-By: polybiusproxy <polybiusproxy@users.noreply.github.com>\nCo-Authored-By: Mc-muffin <Mc-muffin@users.noreply.github.com>\nCo-Authored-By: karas84 <karas84@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.429922,"total_code":2879592,"matched_code":440108,"matched_code_percent":15.283693,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2892,"matched_functions_percent":44.19991,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T02:00:15Z","commit_sha":"903e684fc275fa0edafc44da12bc5a32b2ba7ee1","commit_message":"bodyprog: match 4 funcs","measures":{"fuzzy_match_percent":15.419226,"total_code":2879592,"matched_code":439800,"matched_code_percent":15.272997,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2891,"matched_functions_percent":44.184624,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-06T01:53:00Z","commit_sha":"c9fcea8c1438aa3195122247e8a6e5c8d231b8dd","commit_message":"bodyprog matches (#188)","measures":{"fuzzy_match_percent":15.400195,"total_code":2879592,"matched_code":439252,"matched_code_percent":15.253967,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2887,"matched_functions_percent":44.123493,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-05T13:55:37Z","commit_sha":"4167ae768073771beced4f784ef69aaa096b54a6","commit_message":"bodyprog: match 3 functions\n\nCo-Authored-By: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.27865,"total_code":2879592,"matched_code":435752,"matched_code_percent":15.1324215,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2886,"matched_functions_percent":44.108208,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-05T09:44:07Z","commit_sha":"f866d16d37c14c8af6c140255914e2249cccce92","commit_message":"Match `func_8004B658`\n\nCo-Authored-By: Frozen Burnside <53267111+fmil95@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.261843,"total_code":2879592,"matched_code":435268,"matched_code_percent":15.115614,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2883,"matched_functions_percent":44.06236,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-05T06:53:18Z","commit_sha":"906131e0ec3e052749576838346883b58c2584ce","commit_message":"Naming fixups","measures":{"fuzzy_match_percent":15.260315,"total_code":2879592,"matched_code":435224,"matched_code_percent":15.114085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2882,"matched_functions_percent":44.047073,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-05T06:33:04Z","commit_sha":"9439242fa6e6ebaa4a2c32e523b6211594bd87b0","commit_message":"bodyprog: match 3 functions\n\nCo-Authored-By: emoose <1755499+emoose@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.260315,"total_code":2879592,"matched_code":435224,"matched_code_percent":15.114085,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2882,"matched_functions_percent":44.047073,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-05T02:25:26Z","commit_sha":"859be622e78134a1ffac8cec3c65ed5df75c656a","commit_message":"bodyprog: match 4 functions\n\nCo-Authored-By: belek666 <15877417+belek666@users.noreply.github.com>\nCo-Authored-By: Frozen Burnside <53267111+fmil95@users.noreply.github.com>\nCo-Authored-By: fgsfds <2997482+fgsfdsfgs@users.noreply.github.com>","measures":{"fuzzy_match_percent":15.237534,"total_code":2879592,"matched_code":434568,"matched_code_percent":15.091305,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2879,"matched_functions_percent":44.00122,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-04T12:21:02Z","commit_sha":"7e44795a3940c5e9ff5818c9482a6cae10802113","commit_message":"bodyprog: match 2 functions (contributor: @belek666)","measures":{"fuzzy_match_percent":15.213224,"total_code":2879592,"matched_code":433868,"matched_code_percent":15.066997,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2875,"matched_functions_percent":43.940086,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-04T06:42:06Z","commit_sha":"89e171c5b027a19672ba4b52c3bbd7e37ce31380","commit_message":"Simplify `FP_RADIAN`","measures":{"fuzzy_match_percent":15.199751,"total_code":2879592,"matched_code":433480,"matched_code_percent":15.053521,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2873,"matched_functions_percent":43.909523,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-04T06:30:29Z","commit_sha":"a352a7f741c0480cfb10d3a6b5824d0e5f2b6d20","commit_message":"bodyprog: match 3 funcs.","measures":{"fuzzy_match_percent":15.199751,"total_code":2879592,"matched_code":433480,"matched_code_percent":15.053521,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2873,"matched_functions_percent":43.909523,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-04T04:24:33Z","commit_sha":"905ba8422b2ba5e10518b027d4cbac1baa50e5d0","commit_message":"bodyprog: match 4 funcs (contributors: @emoose, @IWILLCRAFT-M0d)","measures":{"fuzzy_match_percent":15.193222,"total_code":2879592,"matched_code":433292,"matched_code_percent":15.046993,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2870,"matched_functions_percent":43.86367,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-04T02:02:03Z","commit_sha":"562f97959efe62d932dc156b82e694ef131237c9","commit_message":"Match `Game_WarmBoot` (contributor: @emoose)","measures":{"fuzzy_match_percent":15.1753025,"total_code":2879592,"matched_code":432776,"matched_code_percent":15.029075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2866,"matched_functions_percent":43.80254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-04T01:43:41Z","commit_sha":"44f673b20b7c67c02ffc11c996131ffb7fccc90f","commit_message":"Add function decls","measures":{"fuzzy_match_percent":15.160023,"total_code":2879592,"matched_code":432336,"matched_code_percent":15.013793,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2865,"matched_functions_percent":43.787254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-03T19:04:09Z","commit_sha":"a4071f894cf6abc1900e6119d865f28f36fbfdd0","commit_message":"add bodyprog matches (#187)","measures":{"fuzzy_match_percent":15.160023,"total_code":2879592,"matched_code":432336,"matched_code_percent":15.013793,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2865,"matched_functions_percent":43.787254,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-03T14:45:08Z","commit_sha":"510f9732d9439e6060bf00233c1e9b46a1a64f15","commit_message":"Fix non-matching build","measures":{"fuzzy_match_percent":15.072649,"total_code":2879592,"matched_code":429820,"matched_code_percent":14.92642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2859,"matched_functions_percent":43.695553,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-03T13:57:00Z","commit_sha":"6c34b83bd0b51754d3fa2c4d04f74e6e28cc2bb3","commit_message":"item screens: name 2 functions","measures":{"fuzzy_match_percent":15.072649,"total_code":2879592,"matched_code":429820,"matched_code_percent":14.92642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2859,"matched_functions_percent":43.695553,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-03T02:21:46Z","commit_sha":"ae12db358cf56f63412961b67ab6cb139535cb4c","commit_message":"Update `Gfx_Inventory_ScrollArrowsDraw`","measures":{"fuzzy_match_percent":15.072649,"total_code":2879592,"matched_code":429820,"matched_code_percent":14.92642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2859,"matched_functions_percent":43.695553,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-03T01:49:36Z","commit_sha":"4e70c5e37a72cfa710e044c4311171f5feb7a1e9","commit_message":"item screens: demagicking and tidying","measures":{"fuzzy_match_percent":15.072649,"total_code":2879592,"matched_code":429820,"matched_code_percent":14.92642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2859,"matched_functions_percent":43.695553,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-02T21:22:04Z","commit_sha":"7b1a9c60ab3eee24f2aa18cfb5a645876359617e","commit_message":"Build fix (#186)","measures":{"fuzzy_match_percent":15.072649,"total_code":2879592,"matched_code":429820,"matched_code_percent":14.92642,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2859,"matched_functions_percent":43.695553,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-02T02:16:08Z","commit_sha":"3c557f85cc1509b3d64a56c72eefbdb85060ea80","commit_message":"Add comment to `Gfx_DebugStringDraw`","measures":{"fuzzy_match_percent":14.846089,"total_code":2879592,"matched_code":423296,"matched_code_percent":14.69986,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2856,"matched_functions_percent":43.649704,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-02T02:04:35Z","commit_sha":"578de1c1ea97f400009427da4e6c1f43e18376ff","commit_message":"Update `Gfx_DebugStringDraw`.","measures":{"fuzzy_match_percent":14.846089,"total_code":2879592,"matched_code":423296,"matched_code_percent":14.69986,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2856,"matched_functions_percent":43.649704,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-01T01:38:51Z","commit_sha":"aa4074aacf7249c6c6d0b806e61f52c4f6d943f1","commit_message":"bodyprog: decode range check, undef time defines","measures":{"fuzzy_match_percent":14.846089,"total_code":2879592,"matched_code":423296,"matched_code_percent":14.69986,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2856,"matched_functions_percent":43.649704,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-07-01T00:27:09Z","commit_sha":"1d2334774013cdcc5b46edea29215f0219a4d279","commit_message":"Add item screen func decls","measures":{"fuzzy_match_percent":14.846089,"total_code":2879592,"matched_code":423296,"matched_code_percent":14.69986,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2856,"matched_functions_percent":43.649704,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-30T21:15:48Z","commit_sha":"eff70685e62534ad583e04bc0660d5f5d2f6e723","commit_message":"Add matches to item_screens (Contributors: @emoose @IWILLCRAFT-M0d ) (#184)\n\n* add matches to item_screens\n\n* cleanup","measures":{"fuzzy_match_percent":14.846089,"total_code":2879592,"matched_code":423296,"matched_code_percent":14.69986,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2856,"matched_functions_percent":43.649704,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-30T08:06:55Z","commit_sha":"2f66accce6a5ca6d1014bfe097a7618fbe9c3729","commit_message":"Match `Demo_Update` (contributor: @emoose), tidying pass","measures":{"fuzzy_match_percent":14.7498255,"total_code":2879592,"matched_code":420524,"matched_code_percent":14.603597,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2848,"matched_functions_percent":43.52743,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-30T07:14:01Z","commit_sha":"2585f9691a2f4ea60a8fcb43eff578effd5a6cd8","commit_message":"match smf_io (#183)","measures":{"fuzzy_match_percent":14.732462,"total_code":2879592,"matched_code":420024,"matched_code_percent":14.586232,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2847,"matched_functions_percent":43.51215,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-28T00:04:38Z","commit_sha":"016cb095707c5d70628d02a98f6356604002977d","commit_message":"bodyprog: match `func_800717D0`","measures":{"fuzzy_match_percent":14.602166,"total_code":2879592,"matched_code":416272,"matched_code_percent":14.455936,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2844,"matched_functions_percent":43.4663,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-25T16:02:28Z","commit_sha":"91ce7c3f925f5f9c5946f803f7c8683950db4e05","commit_message":"adds matches to smf_snd (Credit: @emoose) (#182)\n\n* add matches to smf_snd\n\n* cleanup","measures":{"fuzzy_match_percent":14.587997,"total_code":2879592,"matched_code":415864,"matched_code_percent":14.441769,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2843,"matched_functions_percent":43.451015,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-24T20:26:21Z","commit_sha":"f2446028e26409e3344ab81f1d1fee1b7fa68faf","commit_message":"Bodyprog matches (Contributors:  @IWILLCRAFT-M0d, @fmil95 @Sezzary) (#181)\n\n* add bodyprog matches\n\n* cleanup","measures":{"fuzzy_match_percent":14.5032625,"total_code":2879592,"matched_code":413424,"matched_code_percent":14.357034,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2840,"matched_functions_percent":43.405167,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-24T00:16:04Z","commit_sha":"b443ca040bdfd66427295e7647e61a33837f917f","commit_message":"bodyprog: add `CD_ERROR_LIMIT` define, use libcd defs\n\n`CD_ERROR_LIMIT` from beatmania matches the 600 value SH uses\nSome of the other CD related code looks similar to beatmania FSCD.C too\n(eg FSCD has similar switches to https://decomp.me/scratch/JnW2z)","measures":{"fuzzy_match_percent":14.407833,"total_code":2879592,"matched_code":410676,"matched_code_percent":14.261603,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2834,"matched_functions_percent":43.313465,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-24T00:00:45Z","commit_sha":"0482646b299a8994502265469337ae143981c345","commit_message":"Match 2 funcs, type fixups (Contributors: @IWILLCRAFT-M0d, @fmil95, @Lovey847)\n\nseems `& 0xFF` / `& 0xFFFF` usually means the type of a field/param/retval is u8 or u16","measures":{"fuzzy_match_percent":14.407833,"total_code":2879592,"matched_code":410676,"matched_code_percent":14.261603,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2834,"matched_functions_percent":43.313465,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-22T16:48:19Z","commit_sha":"31a899307bacaa3fa6cdce2221014b14666ab3ca","commit_message":"maps: minor fixups","measures":{"fuzzy_match_percent":14.389774,"total_code":2879592,"matched_code":410156,"matched_code_percent":14.2435465,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2832,"matched_functions_percent":43.282898,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-22T16:30:05Z","commit_sha":"0e537acb8f43db6ea2a3a94f2c401ff1179ee8ae","commit_message":"maps: share 1 func","measures":{"fuzzy_match_percent":14.389774,"total_code":2879592,"matched_code":410156,"matched_code_percent":14.2435465,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2832,"matched_functions_percent":43.282898,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-22T05:45:15Z","commit_sha":"85cfd5ced610a45c06659be36719be649c699886","commit_message":"Add `FP_RADIAN` macro","measures":{"fuzzy_match_percent":14.274481,"total_code":2879592,"matched_code":406836,"matched_code_percent":14.128251,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2822,"matched_functions_percent":43.130066,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T21:07:05Z","commit_sha":"8bdef26ab0f9fc8547fdae273095b44d301b83b3","commit_message":"maps: fixups","measures":{"fuzzy_match_percent":14.274481,"total_code":2879592,"matched_code":406836,"matched_code_percent":14.128251,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2822,"matched_functions_percent":43.130066,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T21:01:32Z","commit_sha":"657d608e99c62993a7a61555b662ba701342734f","commit_message":"maps: share 1 func","measures":{"fuzzy_match_percent":14.274481,"total_code":2879592,"matched_code":406836,"matched_code_percent":14.128251,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2822,"matched_functions_percent":43.130066,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T20:12:54Z","commit_sha":"524440d5beb6c7ec5897d61c929bbb007dc97c1d","commit_message":"maps: remove unused externs from earlier attempt","measures":{"fuzzy_match_percent":13.687175,"total_code":2879592,"matched_code":389924,"matched_code_percent":13.540946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2779,"matched_functions_percent":42.472874,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T20:08:30Z","commit_sha":"ddf6d3164adf4a3b474f269aee2fea11212fbd61","commit_message":"maps: share 1 func","measures":{"fuzzy_match_percent":13.687175,"total_code":2879592,"matched_code":389924,"matched_code_percent":13.540946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2779,"matched_functions_percent":42.472874,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T18:06:04Z","commit_sha":"a3f752256377cdc7ad5504810fb9bb2fdc225d60","commit_message":"maps: match 6 funcs (5 shared)\n\ncode for these funcs is identical, but since they seem to belong to\ndifferent charas/TUs I've used different files for each of them\n\n(possible they were just using some inline for these instead)","measures":{"fuzzy_match_percent":13.502982,"total_code":2879592,"matched_code":384620,"matched_code_percent":13.356752,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2766,"matched_functions_percent":42.274185,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T17:51:03Z","commit_sha":"223df308181165808cceb2a7706a451e07bc544c","commit_message":"maps: match Ai_Alessa and Ai_BloodyLisa sharedFuncs","measures":{"fuzzy_match_percent":13.219609,"total_code":2879592,"matched_code":376460,"matched_code_percent":13.07338,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2746,"matched_functions_percent":41.968517,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T17:01:48Z","commit_sha":"ea854a69b5c52754e1fe05ef9c05a5a27d6c98ee","commit_message":"maps: match Ai_Kaufmann `sharedFunc_800CF290_3_s00`","measures":{"fuzzy_match_percent":13.212108,"total_code":2879592,"matched_code":376244,"matched_code_percent":13.065879,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2743,"matched_functions_percent":41.922665,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T14:26:55Z","commit_sha":"f801dd0bf1b157416e51fe6599d76b4ab0d2ea4d","commit_message":"Radian angle research progress","measures":{"fuzzy_match_percent":13.199606,"total_code":2879592,"matched_code":375884,"matched_code_percent":13.053377,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2738,"matched_functions_percent":41.84625,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-21T08:23:34Z","commit_sha":"8a8db0ca7078f8c5f04c712e734dfa87f0438039","commit_message":"Match `Vc_VectorMagnitudeCalc` (contributors: @belek666, @emoose)","measures":{"fuzzy_match_percent":13.199606,"total_code":2879592,"matched_code":375884,"matched_code_percent":13.053377,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2738,"matched_functions_percent":41.84625,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-20T11:35:44Z","commit_sha":"661918c50885e12835e60be6039c66cb291f42f0","commit_message":"Bodyprog func_80048E3C (#179)\n\n* Match vcMakeNewBaseCamAng\n\n* match func_80048E3C","measures":{"fuzzy_match_percent":13.187243,"total_code":2879592,"matched_code":375528,"matched_code_percent":13.041014,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2737,"matched_functions_percent":41.830967,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-20T10:31:31Z","commit_sha":"d97976f8173c71ba9bbfd8e46976189336819f1b","commit_message":"Match vcMakeNewBaseCamAng (#178)","measures":{"fuzzy_match_percent":13.179048,"total_code":2879592,"matched_code":375292,"matched_code_percent":13.032818,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2736,"matched_functions_percent":41.81568,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-20T08:46:20Z","commit_sha":"1ec75adacbe7634248351fe177d60948ee38166d","commit_message":"Maps: match 5 non-shared funcs (#177)","measures":{"fuzzy_match_percent":13.153767,"total_code":2879592,"matched_code":374564,"matched_code_percent":13.007537,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2735,"matched_functions_percent":41.800396,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-19T21:44:19Z","commit_sha":"44d8d9d09600fe6501e2b235c9c6506216ed2d0e","commit_message":"bodyprog_80053B08: rodata migration, match 1 func","measures":{"fuzzy_match_percent":13.139319,"total_code":2879592,"matched_code":374148,"matched_code_percent":12.993092,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2730,"matched_functions_percent":41.72398,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-19T09:01:36Z","commit_sha":"8a6fe2dfb3b47a6669ac3f0a5e89de35dc07822c","commit_message":"Update known fields","measures":{"fuzzy_match_percent":13.109593,"total_code":2879592,"matched_code":373292,"matched_code_percent":12.963364,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2729,"matched_functions_percent":41.708694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-19T08:39:05Z","commit_sha":"855c1763ef1c560c6d108f3cba2cd373d322a477","commit_message":"Bodyprog: 2 matches (contributor: @emoose)","measures":{"fuzzy_match_percent":13.109593,"total_code":2879592,"matched_code":373292,"matched_code_percent":12.963364,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2729,"matched_functions_percent":41.708694,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T18:55:01Z","commit_sha":"33894525b366319677bfdbfa242d04994b159c7d","commit_message":"View system: minor renames and tidying","measures":{"fuzzy_match_percent":13.097092,"total_code":2879592,"matched_code":372932,"matched_code_percent":12.950863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2727,"matched_functions_percent":41.67813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T18:43:00Z","commit_sha":"12f111e450bd4cf9e907a15512a91da6e1c58a5c","commit_message":"View system: demagicking pass","measures":{"fuzzy_match_percent":13.097092,"total_code":2879592,"matched_code":372932,"matched_code_percent":12.950863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2727,"matched_functions_percent":41.67813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T17:16:42Z","commit_sha":"c6e485a09cf0e2d841296c04ec7fc9ecd6c5173f","commit_message":"View system: demagicking pass","measures":{"fuzzy_match_percent":13.097092,"total_code":2879592,"matched_code":372932,"matched_code_percent":12.950863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2727,"matched_functions_percent":41.67813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T16:51:31Z","commit_sha":"6d1e556a9aeda42349c1034e351701887d94eed3","commit_message":"maps: match 1 sharedFunc","measures":{"fuzzy_match_percent":13.097092,"total_code":2879592,"matched_code":372932,"matched_code_percent":12.950863,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2727,"matched_functions_percent":41.67813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T16:29:56Z","commit_sha":"b72658e445432c3ab92ba820a09fd51222874e74","commit_message":"Adds matches to vc_main (Contributors:  @emoose @fmil95 @Sezzary ) (#176)\n\n* add matches to vc_main\n\n* format","measures":{"fuzzy_match_percent":12.395186,"total_code":2879592,"matched_code":352720,"matched_code_percent":12.248957,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2684,"matched_functions_percent":41.02094,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T12:10:13Z","commit_sha":"35d3256dcdc443867ae1c1a62e17a819a3cc0496","commit_message":"Finish `FP_METER` substitutions","measures":{"fuzzy_match_percent":12.236414,"total_code":2879592,"matched_code":348148,"matched_code_percent":12.090185,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2677,"matched_functions_percent":40.913956,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T10:39:53Z","commit_sha":"1807d06d22b87005b4a1e3bfb3c0df734b86ae20","commit_message":"`FP_METER` substitutions 2","measures":{"fuzzy_match_percent":12.236414,"total_code":2879592,"matched_code":348148,"matched_code_percent":12.090185,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2677,"matched_functions_percent":40.913956,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T09:57:16Z","commit_sha":"86f0c9f33948d1e8fac31d44549c5a76f9841c3d","commit_message":"Add uncommitted changes","measures":{"fuzzy_match_percent":12.236414,"total_code":2879592,"matched_code":348148,"matched_code_percent":12.090185,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2677,"matched_functions_percent":40.913956,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-18T08:05:13Z","commit_sha":"3ad5b19aee7e11faab3f3f31d030652e70f15a05","commit_message":"Savegame: name vars, demagic","measures":{"fuzzy_match_percent":12.22683,"total_code":2879592,"matched_code":347872,"matched_code_percent":12.0806,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2676,"matched_functions_percent":40.89867,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-17T12:46:03Z","commit_sha":"22df69650e392009776516d7d804ab43a3773ad5","commit_message":"Saveload: name variables and add `s_MemCardState` enum","measures":{"fuzzy_match_percent":12.22683,"total_code":2879592,"matched_code":347872,"matched_code_percent":12.0806,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2676,"matched_functions_percent":40.89867,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-17T09:05:26Z","commit_sha":"30986cc56c03b30ed8785f5b620244b36122d238","commit_message":"Update `s_SysWork`","measures":{"fuzzy_match_percent":12.22683,"total_code":2879592,"matched_code":347872,"matched_code_percent":12.0806,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2676,"matched_functions_percent":40.89867,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-17T08:16:33Z","commit_sha":"b29df824ea84efa8ca87543e21a044caa9163251","commit_message":"`func_80049F38` -> `Vw_AabbVisibleInFrustumCheck`","measures":{"fuzzy_match_percent":12.22683,"total_code":2879592,"matched_code":347872,"matched_code_percent":12.0806,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2676,"matched_functions_percent":40.89867,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-17T04:27:50Z","commit_sha":"dea3d154207bfaa054e08fb2df70a704d5c58ca3","commit_message":"readme: replace Psy-Q progress with bodyprog, remove Psy-Q from objdiff (#175)\n\n* readme: replace Psy-Q with bodyprog\n\n* .\n\n* readme: add bodyprog heading\n\n* objdiff: ignore snmain","measures":{"fuzzy_match_percent":12.22683,"total_code":2879592,"matched_code":347872,"matched_code_percent":12.0806,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6543,"matched_functions":2676,"matched_functions_percent":40.89867,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":94,"complete_units":0}},{"timestamp":"2025-06-16T07:49:26Z","commit_sha":"56f360a38f1f802f86c1b615f74a2bccfc1c4093","commit_message":"Add `q7_8` type","measures":{"fuzzy_match_percent":12.225199,"total_code":2879976,"matched_code":347872,"matched_code_percent":12.078989,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6546,"matched_functions":2676,"matched_functions_percent":40.879925,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-06-16T07:45:38Z","commit_sha":"d2637348100cd51429b01a22d69217cbea7528cc","commit_message":"`FP_METER` substitutions","measures":{"fuzzy_match_percent":12.225199,"total_code":2879976,"matched_code":347872,"matched_code_percent":12.078989,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6546,"matched_functions":2676,"matched_functions_percent":40.879925,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-06-16T07:12:41Z","commit_sha":"429da46d7dd4fb349a19735bf35bd666a81e028e","commit_message":"`func_80049984` -> `View_CoordHierarchyMatrixCompute`, update names","measures":{"fuzzy_match_percent":12.225199,"total_code":2879976,"matched_code":347872,"matched_code_percent":12.078989,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6546,"matched_functions":2676,"matched_functions_percent":40.879925,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-06-16T02:21:40Z","commit_sha":"e459ed23e3bc19be244f143c1c25df451db3df9c","commit_message":"Matched sharedFunc_800CFFF8_0_s00 (#174)\n\n* Matched sharedFunc_800CFFF8_0_s00\n\n* Fix missed eol","measures":{"fuzzy_match_percent":12.225199,"total_code":2879976,"matched_code":347872,"matched_code_percent":12.078989,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6546,"matched_functions":2676,"matched_functions_percent":40.879925,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-06-15T09:19:11Z","commit_sha":"b5ddd9e9b09ea50f4da5abe026434bda7164ed51","commit_message":"Name 2 view funcs","measures":{"fuzzy_match_percent":12.121032,"total_code":2879976,"matched_code":344872,"matched_code_percent":11.974822,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6546,"matched_functions":2666,"matched_functions_percent":40.72716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-06-15T08:51:14Z","commit_sha":"8a17f13ae09c61a8e08a5ab116f9818b83cbc595","commit_message":"Name 2 view functions and their local vars, add decls, minor demagicking and tidying","measures":{"fuzzy_match_percent":12.121032,"total_code":2879976,"matched_code":344872,"matched_code_percent":11.974822,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6546,"matched_functions":2666,"matched_functions_percent":40.72716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-06-14T17:48:08Z","commit_sha":"2bbd5639d6b9fefe607fdc7dc157079f5c6693e1","commit_message":"Link converted PsyQ .o files into main/bodyprog/stream (#169)\n\n* Link converted PsyQ .o files into main/bodyprog/stream\n\n- extracted .OBJ files from PsyQ .LIB using `PSYLIB`\n- converted .OBJ to .o ELF using `psyq-obj-parser`\n- edited certain libcd/libgs objects to reorder .bss variables to same\n  order that SH has them, and updated code to point to reordered vars\n- updated splat yaml to use `lib` segments (prebuild.sh then changes\n  to use .o instead of loading from .a, as a cleaner way to workaround\n  unreferenced functions being skipped)\n\n`lib/` contains each object used from SDKs\n`lib/versions.txt` details which versions were used & changes needed\n\n* bodyprog: link psyq libgs objects\n\n* fixups\n\n* tools: update objdiff_generate config.yaml\n\n* Makefile: only run prebuild/postbuild for certain targets\n\n* lib: remove unused objects\n\n* fixups\n\n* lib: fix matrix.o bss size\n\n* fixups\n\n* lib: add libgte/sqrtbl.o / libspu/zerobuf.o\n\n* fixups\n\n* fixups\n\n* tools: make prebuild/postbuild take target name as param","measures":{"fuzzy_match_percent":12.121032,"total_code":2879976,"matched_code":344872,"matched_code_percent":11.974822,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":6546,"matched_functions":2666,"matched_functions_percent":40.72716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":95,"complete_units":0}},{"timestamp":"2025-06-14T17:25:04Z","commit_sha":"89c51387c9da45e93ac0827c658ee08b26f93521","commit_message":"add vw_calc matches (Credits: @emoose @VenMolom @fmil95 @Sezzary) (#172)","measures":{"fuzzy_match_percent":11.742386,"total_code":2972844,"matched_code":344872,"matched_code_percent":11.600743,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2666,"matched_functions_percent":37.644733,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-14T17:20:41Z","commit_sha":"63f616ef40c54b4a52a1b415c0a9abf10d850844","commit_message":"Matched sharedFunc_800D0700_0_s00 (#173)","measures":{"fuzzy_match_percent":11.624135,"total_code":2972844,"matched_code":342912,"matched_code_percent":11.534813,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2660,"matched_functions_percent":37.56001,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-11T17:57:27Z","commit_sha":"14b0b731798c3f0de8402bc5d15d70722fc40141","commit_message":"Reapplied sharedFunc_800D92AC_0_s00 to other maps using maptool.py (#171)","measures":{"fuzzy_match_percent":11.431726,"total_code":2972844,"matched_code":337192,"matched_code_percent":11.342404,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2647,"matched_functions_percent":37.37645,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-11T04:26:42Z","commit_sha":"017e0c3f9003659e38ca454d348da155ee1287f8","commit_message":"Name `Gfx_Results_Save` local vars","measures":{"fuzzy_match_percent":11.431726,"total_code":2972844,"matched_code":337192,"matched_code_percent":11.342404,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2647,"matched_functions_percent":37.37645,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-11T04:08:17Z","commit_sha":"06aed4f867339baced6259fbfe8d3b15439b2d07","commit_message":"Demagic `sharedFunc_800D92AC_0_s00`","measures":{"fuzzy_match_percent":11.431726,"total_code":2972844,"matched_code":337192,"matched_code_percent":11.342404,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2647,"matched_functions_percent":37.37645,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-10T18:14:57Z","commit_sha":"f53a739937fce725043a3f1d2969e45d6daf5d01","commit_message":"implement gte_rt, replace setlen/setcode, add matches (#170)\n\n* implement gte_rt, replace setlen/setcode, add matches\n\n* match func_800496AC","measures":{"fuzzy_match_percent":11.431726,"total_code":2972844,"matched_code":337192,"matched_code_percent":11.342404,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2647,"matched_functions_percent":37.37645,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-10T18:12:49Z","commit_sha":"c7e6d12728f260460bcbe4cb556c8482405bbea6","commit_message":"Matched sharedFunc_800D92AC_0_s00 (#168)","measures":{"fuzzy_match_percent":11.405623,"total_code":2972844,"matched_code":336416,"matched_code_percent":11.316301,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2643,"matched_functions_percent":37.319965,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-09T05:47:40Z","commit_sha":"9c4c1863776e6b8d0aad85392c3305b06ff64bdb","commit_message":"bodyprog: 2 matches, update decls","measures":{"fuzzy_match_percent":11.326508,"total_code":2972844,"matched_code":334064,"matched_code_percent":11.2371855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2639,"matched_functions_percent":37.263485,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-08T22:45:02Z","commit_sha":"fbee5267c32e340aece778358e59d456bffddc59","commit_message":"Bodyprog: add macros for gte, add matches (#167)\n\n* add macros for gte, add matches for bodyprog\n\n* format","measures":{"fuzzy_match_percent":11.32422,"total_code":2972844,"matched_code":333996,"matched_code_percent":11.234899,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2637,"matched_functions_percent":37.235245,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-06T07:03:29Z","commit_sha":"b97cbb5d251ddcfb0ba6687f40cbc284b1b42ea5","commit_message":"Minor changes","measures":{"fuzzy_match_percent":11.301347,"total_code":2972844,"matched_code":333316,"matched_code_percent":11.212025,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2632,"matched_functions_percent":37.164642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-06T05:57:43Z","commit_sha":"bf8fbc01a66d793de8c8f01768bcbec94e9dd20f","commit_message":"Update `s_SysWork`","measures":{"fuzzy_match_percent":11.301347,"total_code":2972844,"matched_code":333316,"matched_code_percent":11.212025,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2632,"matched_functions_percent":37.164642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-06T05:45:04Z","commit_sha":"c2d118d7cff9eb8b58deb714931071563f39b42e","commit_message":"bodyprog: 4 matches","measures":{"fuzzy_match_percent":11.301347,"total_code":2972844,"matched_code":333316,"matched_code_percent":11.212025,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2632,"matched_functions_percent":37.164642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T23:05:52Z","commit_sha":"a1114cfa0e53277b44f41dceaba7cabd851450ec","commit_message":"maps: add `GsCOORDINATE2*` to AI update func defs","measures":{"fuzzy_match_percent":11.293946,"total_code":2972844,"matched_code":333096,"matched_code_percent":11.204624,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2628,"matched_functions_percent":37.108162,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T22:31:47Z","commit_sha":"d2d097807d4708c0bd0eb8fe6deec4ad44b7f9ad","commit_message":"Change tPage field to byte array, add matches to bodyprog (#165)\n\n* Change tPage field to byte array, add matches to bodyprog\n\n* remove line\n\n* match Gfx_DebugStringDraw\n\n* replace masking","measures":{"fuzzy_match_percent":11.293946,"total_code":2972844,"matched_code":333096,"matched_code_percent":11.204624,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2628,"matched_functions_percent":37.108162,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T21:44:36Z","commit_sha":"e9de58c4a2a1b463827b49cffe42650ec2f03cca","commit_message":"bodyprog/credits: rodata migrate for `func_80090664`","measures":{"fuzzy_match_percent":11.221289,"total_code":2972844,"matched_code":330936,"matched_code_percent":11.131967,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2623,"matched_functions_percent":37.03756,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T15:57:27Z","commit_sha":"46a31d61c5cb7081883a158ec378c576cf49ff11","commit_message":"Match 2 funcs (Contributors: @fmil95, @belek666, @IWILLCRAFT-M0d)","measures":{"fuzzy_match_percent":11.221289,"total_code":2972844,"matched_code":330936,"matched_code_percent":11.131967,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2623,"matched_functions_percent":37.03756,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T10:45:19Z","commit_sha":"bdfade5e697627bf06f2c1c6951b79c2e2560aa6","commit_message":"options: name variables and add comments","measures":{"fuzzy_match_percent":11.1977415,"total_code":2972844,"matched_code":330236,"matched_code_percent":11.10842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2621,"matched_functions_percent":37.00932,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T10:17:02Z","commit_sha":"8048127285540a395b81aa9b504695e33343afa2","commit_message":"Add GPU macros for esoteric colour setting","measures":{"fuzzy_match_percent":11.1977415,"total_code":2972844,"matched_code":330236,"matched_code_percent":11.10842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2621,"matched_functions_percent":37.00932,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T06:19:02Z","commit_sha":"03f1a0ebc6c5845bea7574fcc1f2694ca58c825e","commit_message":"Formatting pass","measures":{"fuzzy_match_percent":11.1977415,"total_code":2972844,"matched_code":330236,"matched_code_percent":11.10842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2621,"matched_functions_percent":37.00932,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T05:12:42Z","commit_sha":"dec0b66325e3664e1f7c7d94b13c50681035b2e7","commit_message":"Add static asserts for struct sizes","measures":{"fuzzy_match_percent":11.1977415,"total_code":2972844,"matched_code":330236,"matched_code_percent":11.10842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2621,"matched_functions_percent":37.00932,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T05:05:30Z","commit_sha":"8a66d3a53efd559f5d072bf1340d35509942a88c","commit_message":"Merge primitive 2D shape structs","measures":{"fuzzy_match_percent":11.1977415,"total_code":2972844,"matched_code":330236,"matched_code_percent":11.10842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2621,"matched_functions_percent":37.00932,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-05T03:33:50Z","commit_sha":"f94246c408b5c721e6ea24e95cf27646b27396aa","commit_message":"Matches (Contributors: @emoose @polybiusproxy @fmil95 @karas84 @belek666) and recognition work\n\nI forgot the function that fmil95 and poly helped to match, Emoose and Karas helped on `GameState_ItemScreens_Update` and Belek fully decompiled `Gfx_Results_Save`, `Gfx_Inventory_ScrollArrows`, `func_8004B76C` and `Gfx_StringDrawInt`Matches (Contributors: @emoose @polybiusproxy @fmil95 @karas84 @belek666) and did more recognition work related to inventory and result screen code.","measures":{"fuzzy_match_percent":11.1977415,"total_code":2972844,"matched_code":330236,"matched_code_percent":11.10842,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2621,"matched_functions_percent":37.00932,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-04T17:18:16Z","commit_sha":"cebf608bdf8a1598caa544ea3bcf7abc3a5806b3","commit_message":"Order sym.bodyprog.txt (#164)\n\nPartial reorder","measures":{"fuzzy_match_percent":11.040855,"total_code":2972844,"matched_code":328152,"matched_code_percent":11.038319,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2614,"matched_functions_percent":36.910477,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-03T06:58:11Z","commit_sha":"3546366f59eab3e3aebe16cb4a5720ad560463d8","commit_message":"saveload: name 1 function and 1 global","measures":{"fuzzy_match_percent":11.040855,"total_code":2972844,"matched_code":328152,"matched_code_percent":11.038319,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2614,"matched_functions_percent":36.910477,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-03T06:41:41Z","commit_sha":"084eddc8c9c84426e93e4dbbf64f2a63388434e8","commit_message":"add `Chara_Padlock` (#163)\n\ncredits to @silenthillpsx for finding it","measures":{"fuzzy_match_percent":11.040855,"total_code":2972844,"matched_code":328152,"matched_code_percent":11.038319,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2614,"matched_functions_percent":36.910477,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-03T04:31:22Z","commit_sha":"6792345ec9ff53101eff8a0d46a88bc1b52c60f2","commit_message":"Merge branch 'master' of https://github.com/Vatuu/silent-hill-decomp","measures":{"fuzzy_match_percent":11.040855,"total_code":2972844,"matched_code":328152,"matched_code_percent":11.038319,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2614,"matched_functions_percent":36.910477,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-03T04:20:35Z","commit_sha":"5dc44eb39e7f94af9a08c46e53908836db94e4f7","commit_message":"bodyprog: match libsd `voice_check`","measures":{"fuzzy_match_percent":11.040855,"total_code":2972844,"matched_code":328152,"matched_code_percent":11.038319,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2614,"matched_functions_percent":36.910477,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-03T03:08:01Z","commit_sha":"642c227b0a7209a5a6ace64241da9eda1211b174","commit_message":"matched `func_80054634` (Contributor: @fmil95)","measures":{"fuzzy_match_percent":11.024036,"total_code":2972844,"matched_code":327652,"matched_code_percent":11.0215,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2613,"matched_functions_percent":36.89636,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T20:57:36Z","commit_sha":"381484b0317a56af7c28eec1ae57df55ad559118","commit_message":"add missing `InventoryItemId` (#162)","measures":{"fuzzy_match_percent":11.020134,"total_code":2972844,"matched_code":327536,"matched_code_percent":11.017598,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2612,"matched_functions_percent":36.882236,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T15:08:33Z","commit_sha":"a646eaa628ed8ec4170c837448f1f8b2f5e8f053","commit_message":"fix bit field offsets (#161)\n\nAlso rename `field_0` to `totalSavegameCount_0` Because it simply counts how many total saves you have on your total account and not only current playthrough.","measures":{"fuzzy_match_percent":11.020134,"total_code":2972844,"matched_code":327536,"matched_code_percent":11.017598,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2612,"matched_functions_percent":36.882236,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T13:36:11Z","commit_sha":"a03b5292751c8678a096aec552858703938e45d7","commit_message":"bodyprog: match libsd smf_mid.c","measures":{"fuzzy_match_percent":11.020134,"total_code":2972844,"matched_code":327536,"matched_code_percent":11.017598,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2612,"matched_functions_percent":36.882236,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T12:58:16Z","commit_sha":"f44439d7c4e3d655a42871dac9ab1ef6426be7be","commit_message":"bodyprog: match libsd `readheader`","measures":{"fuzzy_match_percent":10.995511,"total_code":2972844,"matched_code":326804,"matched_code_percent":10.992975,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2611,"matched_functions_percent":36.868114,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T12:35:29Z","commit_sha":"a2f1316310e552c25e9c816f3249b32e85649335","commit_message":"savegame: naming and organising","measures":{"fuzzy_match_percent":10.961739,"total_code":2972844,"matched_code":325800,"matched_code_percent":10.959203,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2610,"matched_functions_percent":36.853996,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T08:52:24Z","commit_sha":"24ce4026067193559ce4173c6b5c63ccf6951cdf","commit_message":"Minor corrections","measures":{"fuzzy_match_percent":10.961739,"total_code":2972844,"matched_code":325800,"matched_code_percent":10.959203,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2610,"matched_functions_percent":36.853996,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T08:15:30Z","commit_sha":"cfc33708bd65631b1fb1f683d2027fa7df5adb52","commit_message":"Merge branch 'master' of https://github.com/Vatuu/silent-hill-decomp","measures":{"fuzzy_match_percent":10.961739,"total_code":2972844,"matched_code":325800,"matched_code_percent":10.959203,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2610,"matched_functions_percent":36.853996,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T08:15:03Z","commit_sha":"48d1cd22e044b3277f3866c2ffd03dd68ef2e3b5","commit_message":"maps: share 1 func","measures":{"fuzzy_match_percent":10.961739,"total_code":2972844,"matched_code":325800,"matched_code_percent":10.959203,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2610,"matched_functions_percent":36.853996,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T06:14:31Z","commit_sha":"a1dc5f44169f27ef289402adfbb3143717b98ba1","commit_message":"Inventory functions recognition\n\nApart of the inventory functions recognition more splits were done and fixed two matched functions that were commented.","measures":{"fuzzy_match_percent":10.863248,"total_code":2972844,"matched_code":322872,"matched_code_percent":10.860711,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2593,"matched_functions_percent":36.61395,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":303,"complete_units":0}},{"timestamp":"2025-06-02T05:28:48Z","commit_sha":"2e72ce189d1c14476273f8a4f67ac0b248be0c39","commit_message":"saveload: name graphics variables","measures":{"fuzzy_match_percent":10.762737,"total_code":2972844,"matched_code":319884,"matched_code_percent":10.760201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2586,"matched_functions_percent":36.515106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T19:25:42Z","commit_sha":"8dcc0f2030379eea52b8fcb2fb4329c53366853c","commit_message":"Minor compilation fix","measures":{"fuzzy_match_percent":10.762737,"total_code":2972844,"matched_code":319884,"matched_code_percent":10.760201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2586,"matched_functions_percent":36.515106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T18:29:51Z","commit_sha":"caba3e70a6966bc3f26e8489d64997d3cf442c0c","commit_message":"Update saveload.c","measures":{"fuzzy_match_percent":10.7618065,"total_code":2972844,"matched_code":319460,"matched_code_percent":10.745939,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2585,"matched_functions_percent":36.500988,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T14:08:03Z","commit_sha":"e3eac823a70edcfd8d1f010e2dac5558321ad4e5","commit_message":"saveload: identify scroll bar arrow drawing","measures":{"fuzzy_match_percent":10.762737,"total_code":2972844,"matched_code":319884,"matched_code_percent":10.760201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2586,"matched_functions_percent":36.515106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T08:18:20Z","commit_sha":"dbbc5d30c7892b834b72c02010232c55e2132ec4","commit_message":"maps: demagic","measures":{"fuzzy_match_percent":10.762737,"total_code":2972844,"matched_code":319884,"matched_code_percent":10.760201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2586,"matched_functions_percent":36.515106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T08:12:24Z","commit_sha":"65aa927e6b9f73fdd151f4e4985a20acd23e14bc","commit_message":"maps: share 2 funcs\n\n3 of the func includes need rodata for jump tables","measures":{"fuzzy_match_percent":10.762737,"total_code":2972844,"matched_code":319884,"matched_code_percent":10.760201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2586,"matched_functions_percent":36.515106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T05:16:03Z","commit_sha":"b83c27e3530481fdcb19dff8bf855a7d44682050","commit_message":"Small fixups","measures":{"fuzzy_match_percent":10.639354,"total_code":2972844,"matched_code":316216,"matched_code_percent":10.636818,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2553,"matched_functions_percent":36.04914,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T05:11:33Z","commit_sha":"cd5c2e5b90d30e4dd94038992d8683f19b26f086","commit_message":"maps: share `800D908C_0_s00` properly","measures":{"fuzzy_match_percent":10.639354,"total_code":2972844,"matched_code":316216,"matched_code_percent":10.636818,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2553,"matched_functions_percent":36.04914,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T04:11:06Z","commit_sha":"8d5cbac2ee76e3f22e84d337cde5024c4f68de2f","commit_message":"maps: match 1 func","measures":{"fuzzy_match_percent":10.512203,"total_code":2972844,"matched_code":312436,"matched_code_percent":10.509666,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2538,"matched_functions_percent":35.837334,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T02:17:53Z","commit_sha":"5bf152e5703c57b89428aedf2c89a796cb34d69d","commit_message":"Merge branch 'master' of https://github.com/Vatuu/silent-hill-decomp","measures":{"fuzzy_match_percent":10.486773,"total_code":2972844,"matched_code":311680,"matched_code_percent":10.484237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2535,"matched_functions_percent":35.794975,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T01:47:39Z","commit_sha":"1e4a8c663a75f8aebae7d6e877ecfbf99c410951","commit_message":"maps: match/share 3 funcs (Contributors: @Sezzary, @fmil95, @Lovey847)\n\ntodo: change arg2 of all chara update funcs to GsCOORDINATE2*\n(and same for funcs that take arg2 as argument)","measures":{"fuzzy_match_percent":10.486773,"total_code":2972844,"matched_code":311680,"matched_code_percent":10.484237,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2535,"matched_functions_percent":35.794975,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-06-01T01:03:53Z","commit_sha":"63a95f84daea3ea85416543df12f1cb184babd2f","commit_message":"Adding matches","measures":{"fuzzy_match_percent":10.390838,"total_code":2972844,"matched_code":308828,"matched_code_percent":10.388301,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2528,"matched_functions_percent":35.696133,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T15:38:10Z","commit_sha":"d07d8b76a9b77bdc809b31ff40d7a081dbe1eafd","commit_message":"Replace random tabs with spaces; move GPU macro to gpu.h","measures":{"fuzzy_match_percent":10.367291,"total_code":2972844,"matched_code":308128,"matched_code_percent":10.364756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2522,"matched_functions_percent":35.61141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T15:21:30Z","commit_sha":"3513b564127d84f66f323283dffdd424c576175d","commit_message":"Name more savegame structs","measures":{"fuzzy_match_percent":10.367291,"total_code":2972844,"matched_code":308128,"matched_code_percent":10.364756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2522,"matched_functions_percent":35.61141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T14:43:15Z","commit_sha":"decad8ceef1605104222b5463cc3071964abc9c7","commit_message":"Add comment","measures":{"fuzzy_match_percent":10.367291,"total_code":2972844,"matched_code":308128,"matched_code_percent":10.364756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2522,"matched_functions_percent":35.61141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T14:37:19Z","commit_sha":"33c278f3b9dc9820190153a28c2d6d4dddcd81b0","commit_message":"savegame: name structs and fields (#159)\n\n* Name GUI primitive structs and fields\n\n* Fix build error","measures":{"fuzzy_match_percent":10.367291,"total_code":2972844,"matched_code":308128,"matched_code_percent":10.364756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2522,"matched_functions_percent":35.61141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T12:14:04Z","commit_sha":"8f5e0f4d99019e4a2fdd62a98099ab40e0c290b8","commit_message":"Demagic string colour ID","measures":{"fuzzy_match_percent":10.367291,"total_code":2972844,"matched_code":308128,"matched_code_percent":10.364756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2522,"matched_functions_percent":35.61141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T10:52:24Z","commit_sha":"b14e20c1c945326785b641f350ed8e0770e8905e","commit_message":"Minor corrections and demagicking","measures":{"fuzzy_match_percent":10.367291,"total_code":2972844,"matched_code":308128,"matched_code_percent":10.364756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2522,"matched_functions_percent":35.61141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T04:35:55Z","commit_sha":"1a4712b4ebd7c4daf618f5bb09eac29eec9c4c09","commit_message":"Adding matches","measures":{"fuzzy_match_percent":10.367291,"total_code":2972844,"matched_code":308128,"matched_code_percent":10.364756,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2522,"matched_functions_percent":35.61141,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T02:51:53Z","commit_sha":"3bae9b1b5e9d44f86948e033c988f488a8d76dd6","commit_message":"maps: `Ai` update/init func matches\n\nall Ai Update funcs should now be matched except for Ai_Cat_Update","measures":{"fuzzy_match_percent":10.348858,"total_code":2972844,"matched_code":307580,"matched_code_percent":10.346322,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2519,"matched_functions_percent":35.569046,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T01:37:02Z","commit_sha":"db590a4418e4b5c735fcbbee2fcf6d4c59ce44ca","commit_message":"Minor fixups","measures":{"fuzzy_match_percent":10.301227,"total_code":2972844,"matched_code":306164,"matched_code_percent":10.29869,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2509,"matched_functions_percent":35.427845,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T01:21:37Z","commit_sha":"9fe6178c326a0f21da0e40e7ac8b63226055aaae","commit_message":"maps: match `Ai_Twinfeeler_TextureLoad`","measures":{"fuzzy_match_percent":10.301227,"total_code":2972844,"matched_code":306164,"matched_code_percent":10.29869,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2509,"matched_functions_percent":35.427845,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-31T01:06:01Z","commit_sha":"b38215e84e9c7fe84e0651a24c9fc545d36ada30","commit_message":"maps: match 9 `Ai` funcs\n\nrenamed map headers from `s00.h` to `map0_s00.h`\nsince having multiple using same file name could be confusing\n(still keeps them in seperate map0/map1/etc folders though)","measures":{"fuzzy_match_percent":10.299612,"total_code":2972844,"matched_code":306116,"matched_code_percent":10.297075,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2508,"matched_functions_percent":35.413723,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-30T23:50:20Z","commit_sha":"9658f076a8db43e8f2dc3a00cbec74f590aa053f","commit_message":"Adding matches\n\nMatches added and credits:\n* `func_800D9E1C` (map1_s02) | Matched by: @Lovey847 @WibleWobble\n** This function is shared and the first iteration is `func_800D7758` in `map1_s00`\n* Functions from `credits.c` | Matched by: @belek666\n** func_800904F4\n** func_80090664\n** func_8009134C\n** func_80091388\n** func_8009146C\n** func_800914C4","measures":{"fuzzy_match_percent":10.212827,"total_code":2972844,"matched_code":303536,"matched_code_percent":10.210291,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2499,"matched_functions_percent":35.28664,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-30T06:39:58Z","commit_sha":"4756dabf5aac363fde2cb9155d53344ed8a026a7","commit_message":"More symbol recognition and match `func_8002FDB0` (Contributors: @emoose @fmil95) #158\n\nMore symbol recognition focused on `OPTION.BIN` and added a function matched by @emoose and @fmil95","measures":{"fuzzy_match_percent":10.036564,"total_code":2972844,"matched_code":298296,"matched_code_percent":10.034028,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2486,"matched_functions_percent":35.10308,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T16:36:47Z","commit_sha":"a4c473ff81166c2b26522796180c6c06471e19b5","commit_message":"Minor corrections and updated README progress bars","measures":{"fuzzy_match_percent":10.033739,"total_code":2972844,"matched_code":298212,"matched_code_percent":10.031202,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2485,"matched_functions_percent":35.08896,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T13:44:22Z","commit_sha":"5c5b747bff08045c4fd89e07df8377134c2f345b","commit_message":"maps: match/share 4 funcs (Contributor: @Sezzary)","measures":{"fuzzy_match_percent":10.033739,"total_code":2972844,"matched_code":298212,"matched_code_percent":10.031202,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2485,"matched_functions_percent":35.08896,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T12:57:30Z","commit_sha":"7b74181512127b23ec8bc3c04ea147ee0ad11254","commit_message":"maps: share `Ai_Bloodsucker_Init`, rename `ModelAnim_AnimInfoSet`","measures":{"fuzzy_match_percent":10.021495,"total_code":2972844,"matched_code":297848,"matched_code_percent":10.018958,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2479,"matched_functions_percent":35.00424,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T10:46:42Z","commit_sha":"a7ab294077dab8104a18ddacb8e567c23eaf0efe","commit_message":"Match options overlay (#157)","measures":{"fuzzy_match_percent":10.005617,"total_code":2972844,"matched_code":297376,"matched_code_percent":10.003081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2477,"matched_functions_percent":34.975998,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T07:35:58Z","commit_sha":"d3302e0d10a02a1a6083febcccb1e8092abe7e43","commit_message":"maps: minor fixups","measures":{"fuzzy_match_percent":9.990952,"total_code":2972844,"matched_code":296940,"matched_code_percent":9.988415,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2476,"matched_functions_percent":34.961876,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T07:33:57Z","commit_sha":"dc2c55118f67dbdf3a7d94ab56e676eec14d235b","commit_message":"maps: share `Ai_Bloodsucker_Update`","measures":{"fuzzy_match_percent":9.990952,"total_code":2972844,"matched_code":296940,"matched_code_percent":9.988415,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2476,"matched_functions_percent":34.961876,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T06:53:23Z","commit_sha":"b77cdc3c544e8a4976e556250445cc7645133db3","commit_message":"maps: share `Ai_Kaufmann_Update`/`Ai_Kaufmann_Init`","measures":{"fuzzy_match_percent":9.937669,"total_code":2972844,"matched_code":295356,"matched_code_percent":9.935133,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2474,"matched_functions_percent":34.933636,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T06:22:35Z","commit_sha":"863a366f7f4c2ebd088eb28d3e7124a0fa4ebc02","commit_message":"maps: share `Ai_Dahlia_Update`/`Ai_Dahlia_Init`","measures":{"fuzzy_match_percent":9.907664,"total_code":2972844,"matched_code":294464,"matched_code_percent":9.9051285,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2464,"matched_functions_percent":34.79243,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T05:36:09Z","commit_sha":"33fc5819b6dbca4efaa11cabb7310f7ed99f3d1f","commit_message":"maps: share more missed funcs","measures":{"fuzzy_match_percent":9.871739,"total_code":2972844,"matched_code":293396,"matched_code_percent":9.869203,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2452,"matched_functions_percent":34.62299,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T05:23:28Z","commit_sha":"28138a107f12b395b086d9f64725c1cca4e79600","commit_message":"maps: share `Ai_Alessa_Update`/`Ai_Alessa_Init`","measures":{"fuzzy_match_percent":9.802714,"total_code":2972844,"matched_code":291344,"matched_code_percent":9.800178,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2447,"matched_functions_percent":34.552387,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T04:44:32Z","commit_sha":"19d8d41ccf8f90d5f1c45271212c94d86ce62adb","commit_message":"maps: share missed `Ai_Lisa_Update`/`Ai_Lisa_Init`","measures":{"fuzzy_match_percent":9.782263,"total_code":2972844,"matched_code":290736,"matched_code_percent":9.779726,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2439,"matched_functions_percent":34.439423,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T04:34:02Z","commit_sha":"155ad69956524ca2a1090ef92b0e524f7252976a","commit_message":"maps: share `func_800D2DAC`","measures":{"fuzzy_match_percent":9.777149,"total_code":2972844,"matched_code":290584,"matched_code_percent":9.774613,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2437,"matched_functions_percent":34.411182,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T04:22:05Z","commit_sha":"4d08686399cc26fb53d2e9fc7ab0ad1a06057084","commit_message":"maps: minor fixup","measures":{"fuzzy_match_percent":9.545452,"total_code":2972844,"matched_code":283696,"matched_code_percent":9.542916,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2395,"matched_functions_percent":33.81813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T03:51:46Z","commit_sha":"63818ff156f122cc3a43faf9dbec928af4cb7963","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":9.545452,"total_code":2972844,"matched_code":283696,"matched_code_percent":9.542916,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2395,"matched_functions_percent":33.81813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T02:57:55Z","commit_sha":"aae41b71b955fbc5bf4d411cea3afdaad90f5d20","commit_message":"Bodyprog: matches (#156)\n\n* Match `func_80086470`\n\n* Match `func_800865FC`\n\n* Match `func_800877B8`\n\n* Match `func_800881B8`\n\n* Match `func_80087AF4`","measures":{"fuzzy_match_percent":9.545452,"total_code":2972844,"matched_code":283696,"matched_code_percent":9.542916,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2395,"matched_functions_percent":33.81813,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T01:57:12Z","commit_sha":"1abe12f497f41eaa4fc46212deeb6f8d4b19d157","commit_message":"Symbol recognition, reorganization and matches (#154)\n\nSave system symbol recognition, implemented some functions that requires ROTADA and new splits\n* Credits for the matches to @fmil95, @emoose, @Sezzary and @belek666","measures":{"fuzzy_match_percent":9.510065,"total_code":2972844,"matched_code":282644,"matched_code_percent":9.507528,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2392,"matched_functions_percent":33.775772,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":301,"complete_units":0}},{"timestamp":"2025-05-29T00:08:33Z","commit_sha":"d45594bbe011e2ae61082cc52fcdf7f87a65eb87","commit_message":"Cleaner match for `func_800D2DAC`","measures":{"fuzzy_match_percent":9.401483,"total_code":2972844,"matched_code":279416,"matched_code_percent":9.398946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2388,"matched_functions_percent":33.719288,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-28T19:59:39Z","commit_sha":"e9cd3428737f5cf23b1121bda4fdf604da2e0e9f","commit_message":"Match `func_800D2DAC` (#155)","measures":{"fuzzy_match_percent":9.401483,"total_code":2972844,"matched_code":279416,"matched_code_percent":9.398946,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2388,"matched_functions_percent":33.719288,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-27T07:40:23Z","commit_sha":"93e3f51ac0078bee384fa4c9ce34da8db5ab2826","commit_message":"main: fix misnamed psyq symbol/obj","measures":{"fuzzy_match_percent":9.395966,"total_code":2972844,"matched_code":279252,"matched_code_percent":9.393429,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2387,"matched_functions_percent":33.70517,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-27T01:42:28Z","commit_sha":"bd6da49e31520ebc42a5b6eff64444b0fddbae5c","commit_message":"Match `func_8002F278` (Contributor: @fmil95, @karas84, @harvestwhisperer, @entriphy, @Mc-Muffin)","measures":{"fuzzy_match_percent":9.395966,"total_code":2972844,"matched_code":279252,"matched_code_percent":9.393429,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2387,"matched_functions_percent":33.70517,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-27T01:29:18Z","commit_sha":"674d04901ece5d729b58eff3aea42fbe578086e5","commit_message":"Match func_8002EABC (Contributors: @fmil95, @karas84)","measures":{"fuzzy_match_percent":9.393409,"total_code":2972844,"matched_code":279176,"matched_code_percent":9.390873,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2386,"matched_functions_percent":33.691048,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-27T00:48:56Z","commit_sha":"5be963a2033d46d8090fffc6f6d4144f121c8df3","commit_message":"Match `func_80048DA8` (Contributor: @emoose)","measures":{"fuzzy_match_percent":9.386547,"total_code":2972844,"matched_code":278972,"matched_code_percent":9.38401,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2385,"matched_functions_percent":33.67693,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-27T00:02:12Z","commit_sha":"7032c48f031c995c1d790298ba11692639381369","commit_message":"maps: match/share 2 funcs","measures":{"fuzzy_match_percent":9.381569,"total_code":2972844,"matched_code":278824,"matched_code_percent":9.379032,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2384,"matched_functions_percent":33.662807,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-26T23:33:14Z","commit_sha":"f39533d66f321bea6e71386ecb5d3c7c21e28549","commit_message":"Match `func_80069B24` (Contributors: @IWILLCRAFT-M0d, @fmil95)","measures":{"fuzzy_match_percent":9.296802,"total_code":2972844,"matched_code":276304,"matched_code_percent":9.294265,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2372,"matched_functions_percent":33.493362,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-26T22:04:09Z","commit_sha":"c4a26b3cef76c75dc445b8dbfe8a0dbfef4397b6","commit_message":"Add dockerized build (#153)","measures":{"fuzzy_match_percent":9.292361,"total_code":2972844,"matched_code":276172,"matched_code_percent":9.289825,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2371,"matched_functions_percent":33.479244,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-26T17:43:36Z","commit_sha":"c575ee8a056c3e07ce31cfc162f409c2f785fcde","commit_message":"Minor fixups, remove cue file hash from readme\n\nThe SHA1 of cue changes depending on .bin filename, and SHA1 we listed\ndidn't match cue for SLUS-00707.bin, removed mention of it since only\nbin is needed anyway and could lead to confusion","measures":{"fuzzy_match_percent":9.292361,"total_code":2972844,"matched_code":276172,"matched_code_percent":9.289825,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2371,"matched_functions_percent":33.479244,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-26T16:08:06Z","commit_sha":"2c6364fc51de084aaf63c7250e7486572928c084","commit_message":"Minor regression fix","measures":{"fuzzy_match_percent":9.292361,"total_code":2972844,"matched_code":276172,"matched_code_percent":9.289825,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2371,"matched_functions_percent":33.479244,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-26T06:06:14Z","commit_sha":"7a7045d1a7557372186ed867bd48dbd00848174a","commit_message":"More symbol recognition for save screen code (#152)","measures":{"fuzzy_match_percent":9.286575,"total_code":2972844,"matched_code":276000,"matched_code_percent":9.284039,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2370,"matched_functions_percent":33.465122,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-26T04:51:43Z","commit_sha":"7668916065cd787c71b01ae9ee1536ebcad1930c","commit_message":"Name a field + minor corrections","measures":{"fuzzy_match_percent":9.292361,"total_code":2972844,"matched_code":276172,"matched_code_percent":9.289825,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2371,"matched_functions_percent":33.479244,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-26T02:24:25Z","commit_sha":"328c622c3c079b5f9cd8218cd35d6b634ef55d2f","commit_message":"Match  (Contributors: @fmil95 @karas84) + Symbol recognition for save system code related","measures":{"fuzzy_match_percent":9.292361,"total_code":2972844,"matched_code":276172,"matched_code_percent":9.289825,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2371,"matched_functions_percent":33.479244,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T21:06:42Z","commit_sha":"a306891dc16ac97ec8a6f28092a2a535ce0b26a5","commit_message":"Add LoadSHOverlays ghidra script, guide for ghidra/ida/decomp.me (#151)\n\n* tools: add LoadSHOverlays.py ghidra script\n\n* fixup\n\n* docs: add Analysis Guide.md\n\n* fixup","measures":{"fuzzy_match_percent":9.285633,"total_code":2972844,"matched_code":275972,"matched_code_percent":9.283097,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2370,"matched_functions_percent":33.465122,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T18:08:30Z","commit_sha":"44512544cc7824f101b81b34708731e6df43a8e2","commit_message":"bodyprog: build fix","measures":{"fuzzy_match_percent":9.285633,"total_code":2972844,"matched_code":275972,"matched_code_percent":9.283097,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2370,"matched_functions_percent":33.465122,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T08:04:07Z","commit_sha":"20afb86c8f1efde463332f2c5bc52431992412bb","commit_message":"BODYPROG | Matches (Contributors: @emoose @fmil95 @Sezzary @Wezax)","measures":{"fuzzy_match_percent":9.285633,"total_code":2972844,"matched_code":275972,"matched_code_percent":9.283097,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2370,"matched_functions_percent":33.465122,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T05:50:17Z","commit_sha":"82651ce462ed3d9ac593456363aaab0c93c162d4","commit_message":"Create ROM directory","measures":{"fuzzy_match_percent":9.271256,"total_code":2972844,"matched_code":275620,"matched_code_percent":9.271256,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2368,"matched_functions_percent":33.436882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T05:37:58Z","commit_sha":"2794fd738c75bd2bd4a16da074514b87e31cafa6","commit_message":"Match func_8002FB64 (Contributors: @fmil95, @KieronJ)","measures":{"fuzzy_match_percent":9.271256,"total_code":2972844,"matched_code":275620,"matched_code_percent":9.271256,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2368,"matched_functions_percent":33.436882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T05:12:49Z","commit_sha":"6065ccf8f75af464f3f9d8182978c3ea6d98b60b","commit_message":"Match func_800307BC (Contributors: @IWILLCRAFT-M0d, @fmil95)","measures":{"fuzzy_match_percent":9.268566,"total_code":2972844,"matched_code":275540,"matched_code_percent":9.268565,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2367,"matched_functions_percent":33.422764,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T04:49:30Z","commit_sha":"5e6d31e9b5221a3bcecd424cf03e946862e4414b","commit_message":"Demagic more character flags","measures":{"fuzzy_match_percent":9.26574,"total_code":2972844,"matched_code":275456,"matched_code_percent":9.26574,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2366,"matched_functions_percent":33.40864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T04:01:48Z","commit_sha":"b13ada9f59ae4201328617016c11c523e0a67701","commit_message":"Standardise some names","measures":{"fuzzy_match_percent":9.26574,"total_code":2972844,"matched_code":275456,"matched_code_percent":9.26574,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2366,"matched_functions_percent":33.40864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T02:41:21Z","commit_sha":"c5db4b35fe57c1b0b0a268fef690349648324730","commit_message":"Demagic color ID; fix wrong flag oopsie","measures":{"fuzzy_match_percent":9.26574,"total_code":2972844,"matched_code":275456,"matched_code_percent":9.26574,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2366,"matched_functions_percent":33.40864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T02:34:28Z","commit_sha":"39de9c63b3f2d306999fc8596d1d8ff2c8dc93e7","commit_message":"Tidying pass; add `s_CharaFlags` enum","measures":{"fuzzy_match_percent":9.265735,"total_code":2972844,"matched_code":273656,"matched_code_percent":9.205193,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2362,"matched_functions_percent":33.35216,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T01:48:22Z","commit_sha":"bd4510ba33310a41a78210dbac8fe4402ae15cf6","commit_message":"Merge branch 'master' of https://github.com/Vatuu/silent-hill-decomp","measures":{"fuzzy_match_percent":9.26574,"total_code":2972844,"matched_code":275456,"matched_code_percent":9.26574,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2366,"matched_functions_percent":33.40864,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T01:30:28Z","commit_sha":"e77bdee0903b1219b3195cc687e3af1f211e0892","commit_message":"bodyprog: match `vcAdjTgtMvVecYByCurNearRoad`","measures":{"fuzzy_match_percent":9.262646,"total_code":2972844,"matched_code":275364,"matched_code_percent":9.262646,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2365,"matched_functions_percent":33.39452,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T01:17:27Z","commit_sha":"e6ed4797fb32773895a806ac9a8497e7d1c9ba7d","commit_message":"Get func_80041CB4 to match","measures":{"fuzzy_match_percent":9.246634,"total_code":2972844,"matched_code":274888,"matched_code_percent":9.246634,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2364,"matched_functions_percent":33.3804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T01:08:25Z","commit_sha":"ff27a957ed149e4b9638b33ff88c8ba0f3cf94a1","commit_message":"Get func_80035B04 to match","measures":{"fuzzy_match_percent":9.246553,"total_code":2972844,"matched_code":274832,"matched_code_percent":9.24475,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2363,"matched_functions_percent":33.36628,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T00:47:50Z","commit_sha":"80b2b1b4a19d18af121e4dbf1bcc08201289cebb","commit_message":"Get func_8003EF10 to match","measures":{"fuzzy_match_percent":9.246174,"total_code":2972844,"matched_code":274748,"matched_code_percent":9.241924,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2362,"matched_functions_percent":33.35216,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-25T00:03:23Z","commit_sha":"644ee6bb8c152238c0382d9886b3e1decc3e24d1","commit_message":"Match func_8002E94C","measures":{"fuzzy_match_percent":9.244654,"total_code":2972844,"matched_code":274648,"matched_code_percent":9.238561,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2361,"matched_functions_percent":33.33804,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T23:37:37Z","commit_sha":"a0d1866da56e19fd3b0b43173dda25936879e6ac","commit_message":"Match func_8003030C (Contributors: @WibleWobble, @fmil95)","measures":{"fuzzy_match_percent":9.242366,"total_code":2972844,"matched_code":274580,"matched_code_percent":9.236273,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2360,"matched_functions_percent":33.32392,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T23:24:23Z","commit_sha":"0987a194d0c8fbf29e10fa567309e6812fcfb45f","commit_message":"Match func_80030334","measures":{"fuzzy_match_percent":9.24102,"total_code":2972844,"matched_code":274540,"matched_code_percent":9.234927,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2359,"matched_functions_percent":33.3098,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T23:14:11Z","commit_sha":"6b908f54bf14d7e79e9abd7c3f62593abf45c6b3","commit_message":"Match func_800314A4 + update func_8008605C","measures":{"fuzzy_match_percent":9.239002,"total_code":2972844,"matched_code":274480,"matched_code_percent":9.23291,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2358,"matched_functions_percent":33.295677,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T22:09:58Z","commit_sha":"64d150e09a558b9e3b8a0da0fcc845b31f73200d","commit_message":"Update README.md","measures":{"fuzzy_match_percent":9.23658,"total_code":2972844,"matched_code":274408,"matched_code_percent":9.230488,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2357,"matched_functions_percent":33.28156,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T22:09:47Z","commit_sha":"213c0719430cc4d43d877960710c8cdc87db687c","commit_message":"bodyprog: match `vcMakeFarWatchTgtPos`","measures":{"fuzzy_match_percent":9.23658,"total_code":2972844,"matched_code":274408,"matched_code_percent":9.230488,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2357,"matched_functions_percent":33.28156,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T21:57:35Z","commit_sha":"862684aabe23a3e94fb6708e2ef4341a7b8a7a62","commit_message":"Match func_8008605C (Contributors: @Sezzary, @fmil95)","measures":{"fuzzy_match_percent":9.219761,"total_code":2972844,"matched_code":273908,"matched_code_percent":9.213669,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2356,"matched_functions_percent":33.267437,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T21:49:47Z","commit_sha":"3e77d9fd5ddb72236d85beb0198b914f31a8dec1","commit_message":"Quick fix for build error","measures":{"fuzzy_match_percent":9.216936,"total_code":2972844,"matched_code":273824,"matched_code_percent":9.210843,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2355,"matched_functions_percent":33.25332,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T21:11:09Z","commit_sha":"cb90e1adf5dce75e7c6f188fa6ab1a0a9a7aa5bf","commit_message":"Match func_8003C8F8 (Contributors: @Sparagas, @fmil95)","measures":{"fuzzy_match_percent":9.202807,"total_code":2972844,"matched_code":273404,"matched_code_percent":9.196715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2353,"matched_functions_percent":33.22508,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T20:40:28Z","commit_sha":"c2b136ae4d9a7a4f1613959d34bb3033b8fa6ef7","commit_message":"Matched func_8003EBA0 (#149)","measures":{"fuzzy_match_percent":9.201058,"total_code":2972844,"matched_code":273352,"matched_code_percent":9.194966,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2352,"matched_functions_percent":33.210957,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T20:31:05Z","commit_sha":"ec4236b963c02a9539b444c5886ffa21c6ac9601","commit_message":"Matched func_8003D6A4 (#148)","measures":{"fuzzy_match_percent":9.198233,"total_code":2972844,"matched_code":273268,"matched_code_percent":9.192141,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2351,"matched_functions_percent":33.19684,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-24T17:32:01Z","commit_sha":"0051a59ef0cf0eefa51b03421122b5d9883f5442","commit_message":"Matched 100 func_8002E86C (#146)","measures":{"fuzzy_match_percent":9.196215,"total_code":2972844,"matched_code":273208,"matched_code_percent":9.190122,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2350,"matched_functions_percent":33.182716,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-23T22:15:10Z","commit_sha":"f92e23db7f1ad5a2cebde05ff3f875e3c8ca07fb","commit_message":"bodyprog: match 3 vc_main funcs","measures":{"fuzzy_match_percent":9.194735,"total_code":2972844,"matched_code":273164,"matched_code_percent":9.1886425,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2349,"matched_functions_percent":33.168594,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-23T21:44:53Z","commit_sha":"fadb2ec0f31e71de4adb70ff9d0726d500931a90","commit_message":"Add saveload matches, (Contributors: @Mc-muffin @Sezzary) (#144)\n\n* adds saveload matches\n\n* Change argument types\n\n* add 3 funcs to saveload","measures":{"fuzzy_match_percent":9.125037,"total_code":2972844,"matched_code":271092,"matched_code_percent":9.118944,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2346,"matched_functions_percent":33.126236,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-23T14:28:11Z","commit_sha":"7dd1004ef83de54564a0e46cfb69aabba4200aa2","commit_message":"maps: share human NPC init funcs\n\ntodo: rename `sharedFunc_800D923C_0_s00` to `Ai_Humanoid_Init` or\nsimilar (also used by player chara?)\n\nAi_AirScreamer is only chara missing an init func now","measures":{"fuzzy_match_percent":9.012014,"total_code":2972844,"matched_code":267732,"matched_code_percent":9.005921,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2343,"matched_functions_percent":33.083874,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-23T13:46:31Z","commit_sha":"c8f46cc9c456a689601177917e0b94d5ae368d5d","commit_message":"maps: clang-format","measures":{"fuzzy_match_percent":8.993042,"total_code":2972844,"matched_code":267168,"matched_code_percent":8.98695,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2330,"matched_functions_percent":32.90031,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-23T13:44:57Z","commit_sha":"4de02976612684f8cdd19b1b3975a15938cfbf07","commit_message":"maps: share `Ai_HangedScratcher_Init` / `Ai_Splithead_Init`","measures":{"fuzzy_match_percent":8.993042,"total_code":2972844,"matched_code":267168,"matched_code_percent":8.98695,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2330,"matched_functions_percent":32.90031,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":297,"complete_units":0}},{"timestamp":"2025-05-22T22:26:20Z","commit_sha":"d470ecb91504a647a77317a5c59742bb8375924c","commit_message":"adds saveload matches (#143)\n\n* adds saveload matches\n\n* Change argument types","measures":{"fuzzy_match_percent":8.932494,"total_code":2972844,"matched_code":265368,"matched_code_percent":8.926402,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2326,"matched_functions_percent":32.843826,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-21T12:26:30Z","commit_sha":"1a7a7557d610fdfaad3c91620c25a2e9490ea982","commit_message":"maps: share `Ai_Groaner_Init`, mark `g_SaveGamePtr` pointer const","measures":{"fuzzy_match_percent":8.814035,"total_code":2972844,"matched_code":260496,"matched_code_percent":8.762518,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2323,"matched_functions_percent":32.801468,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-21T11:30:19Z","commit_sha":"70d4caa4a0a14f798332cdb8c13ce6ab6e06cbd5","commit_message":"maps: share `Ai_Romper_init`, move `ModelAnim_UpdateField`","measures":{"fuzzy_match_percent":8.715813,"total_code":2972844,"matched_code":257576,"matched_code_percent":8.664296,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2318,"matched_functions_percent":32.73087,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-21T10:24:28Z","commit_sha":"d07822f73db549d4d63ef175c2cb6efc8adf96cc","commit_message":"maps: share 2 funcs (Matched by @Sezzary)","measures":{"fuzzy_match_percent":8.6490755,"total_code":2972844,"matched_code":255592,"matched_code_percent":8.597559,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2314,"matched_functions_percent":32.67439,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-21T07:43:04Z","commit_sha":"642802ebfa9c6b0e56cbdc3f1388103556148869","commit_message":"config: remove label/fake syms from sym.main.txt\n\nallows more accurate objdiff compare with SDK syms","measures":{"fuzzy_match_percent":8.579782,"total_code":2972844,"matched_code":253532,"matched_code_percent":8.528265,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7082,"matched_functions":2303,"matched_functions_percent":32.519062,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-21T06:54:26Z","commit_sha":"339c5a8a6982c39e2586d72235a0c00978cfaa16","commit_message":"Match `func_80037E78`; add decls","measures":{"fuzzy_match_percent":8.579816,"total_code":2972832,"matched_code":253532,"matched_code_percent":8.528299,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2303,"matched_functions_percent":30.195358,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-21T04:22:48Z","commit_sha":"e06f221c9a1bccf6191f65f287e6433849fe73f5","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":8.574031,"total_code":2972832,"matched_code":253360,"matched_code_percent":8.522513,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2302,"matched_functions_percent":30.18225,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-21T00:20:19Z","commit_sha":"e172392bdc2dbfdf602e2d443b13c2503b28ebad","commit_message":"maps: share `Ai_Creaper_Init`","measures":{"fuzzy_match_percent":8.574031,"total_code":2972832,"matched_code":253360,"matched_code_percent":8.522513,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2302,"matched_functions_percent":30.18225,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-20T20:15:11Z","commit_sha":"f7bd351699d40e2baf38df839eed1d6cde79e204","commit_message":"Makefile: make multithread fix (`make check -j16`)","measures":{"fuzzy_match_percent":8.479306,"total_code":2972832,"matched_code":250544,"matched_code_percent":8.427789,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2298,"matched_functions_percent":30.129803,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-20T19:49:53Z","commit_sha":"e2d1e566b2bdbf0e4b15ee744972295f34b3102e","commit_message":"actions: use `make setup`, unfix Makefile for test","measures":{"fuzzy_match_percent":8.479306,"total_code":2972832,"matched_code":250544,"matched_code_percent":8.427789,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2298,"matched_functions_percent":30.129803,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-20T19:45:08Z","commit_sha":"99ef42a9ed577acceea1384b3f643374b05df36d","commit_message":"Makefile: fix main EXE flags","measures":{"fuzzy_match_percent":8.479306,"total_code":2972832,"matched_code":250544,"matched_code_percent":8.427789,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2298,"matched_functions_percent":30.129803,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-20T19:40:56Z","commit_sha":"2cfff06352d7c47b1f914e8835baea3bd47dcfd4","commit_message":"actions: add check.yml action\n\nMakefile had a small issue building main exe, good chance to test this","measures":{"fuzzy_match_percent":8.479306,"total_code":2972832,"matched_code":250544,"matched_code_percent":8.427789,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2298,"matched_functions_percent":30.129803,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-19T21:38:09Z","commit_sha":"9b67d9aef33192061dec0b6aee2320b53517963d","commit_message":"Makefile touch-ups","measures":{"fuzzy_match_percent":8.479306,"total_code":2972832,"matched_code":250544,"matched_code_percent":8.427789,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2298,"matched_functions_percent":30.129803,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-19T21:02:40Z","commit_sha":"e4293c208e71dc554a313a3d4d0dbcdcf5319e5d","commit_message":"add s32 func_8003D444(s32 idx) in bodyprog (#141)\n\n* s32 func_8003BE50(s32 idx)","measures":{"fuzzy_match_percent":8.479306,"total_code":2972832,"matched_code":250544,"matched_code_percent":8.427789,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2298,"matched_functions_percent":30.129803,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-19T19:01:28Z","commit_sha":"37e090ee08afe52286eab5edcadfd84c44e70ceb","commit_message":"s32 func_8003BE50(s32 idx) (#140)\n\nAdd function that adds 32 to an array of a field in a struct.","measures":{"fuzzy_match_percent":8.478364,"total_code":2972832,"matched_code":250516,"matched_code_percent":8.4268465,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2297,"matched_functions_percent":30.116692,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-19T07:38:59Z","commit_sha":"4fb15b51307b86139f9f963eaab937ec9ae987ce","commit_message":"Makefile: add map-specific defines\n\nAllows `#ifdef MAP0_S00` which helps with shared funcs that have map\nspecific code","measures":{"fuzzy_match_percent":8.477422,"total_code":2972832,"matched_code":250488,"matched_code_percent":8.425905,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2296,"matched_functions_percent":30.103579,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-19T06:34:42Z","commit_sha":"69313fc17d38342c2ce136272718056576038e35","commit_message":"maps: share `Ai_Stalker_Init` (#139)","measures":{"fuzzy_match_percent":8.477422,"total_code":2972832,"matched_code":250488,"matched_code_percent":8.425905,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2296,"matched_functions_percent":30.103579,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":295,"complete_units":0}},{"timestamp":"2025-05-18T21:28:13Z","commit_sha":"1847d86e3f56a3d0c17bc4e83c939b87b70dc152","commit_message":"maps: move map7_s01 splits for PuppetNurse\n\nmissed this in last commit somehow","measures":{"fuzzy_match_percent":8.2873,"total_code":2972832,"matched_code":244836,"matched_code_percent":8.235784,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2287,"matched_functions_percent":29.985577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-18T21:02:54Z","commit_sha":"48ea225f39bcedeb610e591829b0f5502254cd6a","commit_message":"maps: move map splits to cover `PuppetNurse` code, add func syms (#138)","measures":{"fuzzy_match_percent":8.2873,"total_code":2972832,"matched_code":244836,"matched_code_percent":8.235784,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2287,"matched_functions_percent":29.985577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-18T16:50:43Z","commit_sha":"51a757a4afd82eb2c53a62f7e425b364e58b3f80","commit_message":"Unpack `sShSaveGame.enemyKillCountPacked_25C` (#137)\n\nAdd `q20_12` typedef and use it on `s_ShSaveGame.gameplayTimer`.\n\nRename `s_ShSaveGame.field_24A` to\n`s_ShSaveGame.clearGameCount_24A` (max is 99)\n\nchange `s32 enemyKillCountPacked_25C` to separate values.\nLooks like `unknwon_25C_3` is still used, and is not padding.\n\nSide Note:\n`meleeKillCount` is a weird one. Logically it should be the same size as `rangedKillCount`. But for some reason in the RAM it can be modified as `u16`.\nBut it can't be packed as `u16`, because the struct will we bigger with added padding.\n\nNeed more research.\n\nAlso in the future all these 4 `u8` bit field values should be packed to a struct, because it is used again in save-load screen.","measures":{"fuzzy_match_percent":8.2873,"total_code":2972832,"matched_code":244836,"matched_code_percent":8.235784,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2287,"matched_functions_percent":29.985577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-18T01:24:11Z","commit_sha":"cc63cd08bde08a13d27fe147d07e345e13c36268","commit_message":"Progress (#136)\n\nCredits to @belek666 @ladysilverberg @emoose @VenMolom","measures":{"fuzzy_match_percent":8.2873,"total_code":2972832,"matched_code":244836,"matched_code_percent":8.235784,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2287,"matched_functions_percent":29.985577,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-17T12:21:07Z","commit_sha":"e3ab5f312bc622e9d598a448d3ca67c32cb16bf3","commit_message":"configs: add psyq syms to sym.main.txt\n\nmeant to merge these from old repo a while ago\nstill a lot of unnamed syms there though, maybe need to check COFF libs\nagain","measures":{"fuzzy_match_percent":8.176214,"total_code":2972832,"matched_code":242884,"matched_code_percent":8.170122,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2281,"matched_functions_percent":29.90691,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-16T22:35:47Z","commit_sha":"396ff2d0af701154e35b95ac3f720e2d0eb7a792","commit_message":"Match `func_8003B7BC` (#134)\n\n* Match `func_8003B7BC`\n\n* Fix pointer type","measures":{"fuzzy_match_percent":8.176214,"total_code":2972832,"matched_code":242884,"matched_code_percent":8.170122,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2281,"matched_functions_percent":29.90691,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-16T21:09:55Z","commit_sha":"50b14e0f343437700a3221a9c0c2f7a84d740509","commit_message":"maps: share `Ai_PuppetNurse_Init` between maps (#133)\n\n* bodyprog: match `Math_MulFixed` (inline asm)\n\n* SubCharacter: add field_E0 bitfield\n\n* SubCharacter: make properties_E4 union for player/npc\n\na lot of the Ai_Update funcs are using player version of properties to\naccess it atm, those accesses don't seem to fit the current npc version\nneither\nmight be different data per-chara-type :/\n\n* maps: share `Ai_PuppetNurse_Init`\n\n* s_Model: rename fields to paletteIdx_1/stage_2/stageStep_3\n\n* s_Model: stage -> state, fixups\n\n* fixup","measures":{"fuzzy_match_percent":8.174062,"total_code":2972832,"matched_code":242820,"matched_code_percent":8.16797,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2280,"matched_functions_percent":29.893797,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-16T15:53:05Z","commit_sha":"5bc5a3d84cd0a7520311b02f7c09135c765788ff","commit_message":"Saveload matches (#132)\n\n* Match `Gfx_SaveBackgroundDraw` (Contributor: @belet666); add comments and minor tidying\n\n* saveload matches\n\n* cleanup","measures":{"fuzzy_match_percent":8.10988,"total_code":2972832,"matched_code":240912,"matched_code_percent":8.103788,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2275,"matched_functions_percent":29.828241,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-16T09:13:54Z","commit_sha":"3b7bf5ec75bf2f0699903bd3d8b3611e4d3c885d","commit_message":"bodyprog: match 2 funcs (Contributors: @fmil95, @fgsfdsfgs, @IWILLCRAFT-M0d, \"Furry Turkey\")","measures":{"fuzzy_match_percent":8.033724,"total_code":2972832,"matched_code":238648,"matched_code_percent":8.027632,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2271,"matched_functions_percent":29.775795,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-16T02:22:22Z","commit_sha":"b887024ecfb702e806a580aad5ebeccc449a582f","commit_message":"Match `Gfx_SaveBackgroundDraw` (Contributor: @belek666); add comments and minor tidying\n\nRecreating @Sezzary commit","measures":{"fuzzy_match_percent":8.027669,"total_code":2972832,"matched_code":238468,"matched_code_percent":8.021577,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2269,"matched_functions_percent":29.749575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-16T02:16:38Z","commit_sha":"bf4e38736477e0616df2cbfdc8e07e853540eb1a","commit_message":"Match  (Contributor: @belek666); add comments and minor tidying\n\nRecreating @Sezzary commit","measures":{"fuzzy_match_percent":8.027669,"total_code":2972832,"matched_code":238468,"matched_code_percent":8.021577,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2269,"matched_functions_percent":29.749575,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-15T23:43:20Z","commit_sha":"a8cb00208b12a0d4babe86ec770b38bb16fed8f8","commit_message":"Inserting functions that require Jumptables + func_8003ED74, func_8003EF10 and func_801E3304 (Contributors: @fmil95 @Sezzary @belek666 @Wezax @karas84)","measures":{"fuzzy_match_percent":8.020538,"total_code":2972832,"matched_code":238256,"matched_code_percent":8.014445,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2268,"matched_functions_percent":29.736462,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":286,"complete_units":0}},{"timestamp":"2025-05-15T07:16:43Z","commit_sha":"79216a3b601556fc92ec33658a4513e62c9dbc64","commit_message":"Match `Gfx_SaveBackgroundDraw` (Contributor: @belet666); add comments and minor tidying","measures":{"fuzzy_match_percent":7.9541097,"total_code":2972832,"matched_code":236336,"matched_code_percent":7.9498606,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2265,"matched_functions_percent":29.697128,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-15T03:05:53Z","commit_sha":"0d562773c7d7aa5fa90a86538fe714149bc5d843","commit_message":"bodyprog: match `Chara_PositionUpdateFromParams`","measures":{"fuzzy_match_percent":7.9469786,"total_code":2972832,"matched_code":236124,"matched_code_percent":7.9427295,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2264,"matched_functions_percent":29.684015,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-15T02:14:04Z","commit_sha":"02c04b8c0fd889fb5946018d6f39325d5510e2e6","commit_message":"maps: add `Ai_PuppetDoctor_Update` decl","measures":{"fuzzy_match_percent":7.9358106,"total_code":2972832,"matched_code":235792,"matched_code_percent":7.931562,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2263,"matched_functions_percent":29.670906,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-15T02:10:03Z","commit_sha":"cc054305863e9be618e1fdf73a9b70bef27650d1","commit_message":"maps: share `Ai_PuppetNurse`/`Ai_PuppetDoctor`\n\nContributors: @Sezzary & @fmil95","measures":{"fuzzy_match_percent":7.9358106,"total_code":2972832,"matched_code":235792,"matched_code_percent":7.931562,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2263,"matched_functions_percent":29.670906,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-15T01:52:55Z","commit_sha":"c0ded4e94009c32ba34c71603bcfee7e82909236","commit_message":"maps: match `Ai_LockerDeadBody`, update Anim_Update param\n\nContributors: @Sezzary","measures":{"fuzzy_match_percent":7.911053,"total_code":2972832,"matched_code":235056,"matched_code_percent":7.906804,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2255,"matched_functions_percent":29.566017,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-15T01:40:03Z","commit_sha":"7a0b7e9dbfb309a402f036a8d854dbe427e3e08c","commit_message":"Match `func_80037334` (#131)\n\n* 100% match func_80037334","measures":{"fuzzy_match_percent":7.89706,"total_code":2972832,"matched_code":234640,"matched_code_percent":7.8928103,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2254,"matched_functions_percent":29.552904,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-15T01:11:41Z","commit_sha":"bccef33ebb82ca18b343f3b0bb0ea3f70fefaafa","commit_message":"maps: share `Ai_LarvalStalker_Update` (contributors: @Sezzary)","measures":{"fuzzy_match_percent":7.894234,"total_code":2972832,"matched_code":234556,"matched_code_percent":7.889985,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2253,"matched_functions_percent":29.539793,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-15T00:33:45Z","commit_sha":"f9da8aed328a556e85d375b43a715ed5d3addeb8","commit_message":"maps: share `Ai_Stalker_Update` (contributors: @Sezzary)","measures":{"fuzzy_match_percent":7.8659782,"total_code":2972832,"matched_code":233716,"matched_code_percent":7.861729,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2250,"matched_functions_percent":29.500458,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T23:35:50Z","commit_sha":"bcc1bfa4b431166b5405780d2d77b155d8533768","commit_message":"maps: `AirScreamer`, `BloodyLisa`, `Lisa`, `GhostChildAlessa` (matched by @Sezzary)","measures":{"fuzzy_match_percent":7.7436705,"total_code":2972832,"matched_code":230080,"matched_code_percent":7.739422,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2241,"matched_functions_percent":29.382458,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T22:04:34Z","commit_sha":"4f6f1fe3d3f7605a4df321a4428d1e9bc4841c87","commit_message":"maps: share `Ai_Cybil` / `Ai_Splithead` (matched by @Sezzary)\n\nSplithead shared funcs exactly, but Cybil has 2 funcs that change in\npretty much each map.\n\nI'd guess these funcs probably have same purpose, but since Cybil is\nmostly a cutscene char they might have added map-specific stuff in each\none.\n\nRenamed those funcs to sharedSymbol instead of sharedFunc, since we only\nneed the symbol name to match for us to share Ai_Cybil_Update, will\nprobably go back through the other non-identical AI funcs and do the\nsame for those too.","measures":{"fuzzy_match_percent":7.6812387,"total_code":2972832,"matched_code":228224,"matched_code_percent":7.6769896,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2225,"matched_functions_percent":29.172676,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T21:17:04Z","commit_sha":"eb2338cec34f4d4844f16e8913ce2a2bf8e74130","commit_message":"maps: share `Ai_Groaner_Update` (matched by @Sezzary)\n\nmap2_s00 version of sharedFunc_800E3074 / sharedFunc_800E384C differs\nto the version used across the other 4 Ai_Groaner_Update maps :/\n\nThose other 4 all share the same code fine, wonder why 2_s00 was\ndifferent.\n\nWe have to keep using the same symbol name in order for\nAi_Groaner_Update to be sharable, but down the line we can rename those\nfrom sharedFunc to whatever their purpose is","measures":{"fuzzy_match_percent":7.652714,"total_code":2972832,"matched_code":227376,"matched_code_percent":7.648464,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2219,"matched_functions_percent":29.094007,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T21:15:39Z","commit_sha":"85f204498a69c8ce799776031c4adf01a671c069","commit_message":"Match `func_800494B0` (Contributors: @Wezax, @Sezzary, @karas84) (#130)","measures":{"fuzzy_match_percent":7.6103296,"total_code":2972832,"matched_code":226116,"matched_code_percent":7.606081,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2214,"matched_functions_percent":29.028452,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T20:41:23Z","commit_sha":"8be8493204d6f34c62bea089147ab4c6fed7d811","commit_message":"maps: share `Ai_Romper_Update` (matched by @Sezzary)","measures":{"fuzzy_match_percent":7.6060243,"total_code":2972832,"matched_code":225988,"matched_code_percent":7.601775,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2213,"matched_functions_percent":29.01534,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T20:23:00Z","commit_sha":"875bd987323dc0bb0e67045656036fd1a18e2770","commit_message":"maps: share `Ai_HangedScratcher_Update` (matched by @Sezzary)","measures":{"fuzzy_match_percent":7.584496,"total_code":2972832,"matched_code":225348,"matched_code_percent":7.580247,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2209,"matched_functions_percent":28.962894,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T20:01:02Z","commit_sha":"b99cf843a16bcf3fd22a6ed583a64fe40d5bbd87","commit_message":"maps: share `Ai_Creaper_Update`\n\nThanks to @Sezzary for matching it\n\nWeird issue with the map5_s00 version, one of the funcs it calls has an\nextra block of code added to the end, wonder what it means...\n\nMaybe map5_s00 was built at a different time to the other maps, and has\nthis extra block added/removed at some point?\nOr could be each map actually has its own copy of the AI code for each\nchara? Guess we'll find out once we get more AI stuff done","measures":{"fuzzy_match_percent":7.5756154,"total_code":2972832,"matched_code":225084,"matched_code_percent":7.5713663,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2207,"matched_functions_percent":28.936672,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T19:11:51Z","commit_sha":"6ee674e49ba2a576c137724b538c1dd98f49d082","commit_message":"maps: share `func_800D01D0`, split 3_s03/3_s04/3_s05/7_s01\n\nsplits are guesses, func_800D01D0 needed split to build properly, and that\ncalls some funcs just before it, so split it where those funcs began\n\nguess it kinda makes sense since these are funcs shared with other maps,\nmaybe .c or some kind of lib, didn't check if those call into any earlier\nfuncs though, maybe could be split even earlier\n\nupdated maptool to work with split maps, and fixed issue with wrong jtbl size","measures":{"fuzzy_match_percent":7.551396,"total_code":2972832,"matched_code":224364,"matched_code_percent":7.547147,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2202,"matched_functions_percent":28.871117,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":284,"complete_units":0}},{"timestamp":"2025-05-14T15:46:27Z","commit_sha":"1af54dc0166e1a130c8f227153c2fde61d7798af","commit_message":"Match `func_801E3910` (Contributors: @belek666)","measures":{"fuzzy_match_percent":7.51426,"total_code":2972832,"matched_code":223260,"matched_code_percent":7.5100107,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2198,"matched_functions_percent":28.81867,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-14T13:58:55Z","commit_sha":"b950b3aadab118b86b1660fb70abf8837737787b","commit_message":"Demagic enum values","measures":{"fuzzy_match_percent":7.4866767,"total_code":2972832,"matched_code":222440,"matched_code_percent":7.4824276,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2197,"matched_functions_percent":28.80556,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-14T13:13:33Z","commit_sha":"a735f2cf7088d4602d9c267b6bde7b3568ee5dc1","commit_message":"match Settings_ButtonChange (#129)","measures":{"fuzzy_match_percent":7.4866767,"total_code":2972832,"matched_code":222440,"matched_code_percent":7.4824276,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2197,"matched_functions_percent":28.80556,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-14T07:15:18Z","commit_sha":"676fdaa0999902c6c7dfb00cbc43297c9e8e7071","commit_message":"Update options.h","measures":{"fuzzy_match_percent":7.4658213,"total_code":2972832,"matched_code":221820,"matched_code_percent":7.4615717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2196,"matched_functions_percent":28.792446,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-14T06:06:28Z","commit_sha":"728e937354963563db5918c784076f465702c82c","commit_message":"Update global names; hex -> dec where appropriate","measures":{"fuzzy_match_percent":7.4658213,"total_code":2972832,"matched_code":221820,"matched_code_percent":7.4615717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2196,"matched_functions_percent":28.792446,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T22:45:38Z","commit_sha":"e803afc6a45a251299eb48e497c95e383ead47f3","commit_message":"options matches (#128)","measures":{"fuzzy_match_percent":7.4658213,"total_code":2972832,"matched_code":221820,"matched_code_percent":7.4615717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2196,"matched_functions_percent":28.792446,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T21:09:18Z","commit_sha":"08b72dbe78474340afd3171d7f44605f6af9bb72","commit_message":"Update README.md","measures":{"fuzzy_match_percent":7.3829374,"total_code":2972832,"matched_code":219356,"matched_code_percent":7.378688,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2194,"matched_functions_percent":28.766224,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T20:33:49Z","commit_sha":"c8e409c424ca4fa1e8b06421925111c62222638a","commit_message":"stream: fixup CdControlB param","measures":{"fuzzy_match_percent":7.3829374,"total_code":2972832,"matched_code":219356,"matched_code_percent":7.378688,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2194,"matched_functions_percent":28.766224,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T20:14:02Z","commit_sha":"d2541f2c10667860048a6bd17bc39bbd87280d47","commit_message":"stream: match `movie_main` (#127)\n\n* stream: match `movie_main`\n\nmany thanks to @Mc-muffin for getting the match!\n\n* stream: clang-format stream.h","measures":{"fuzzy_match_percent":7.3829374,"total_code":2972832,"matched_code":219356,"matched_code_percent":7.378688,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2194,"matched_functions_percent":28.766224,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T18:48:01Z","commit_sha":"ce318c9d30e83484cba7197f81fdc090bb4f849c","commit_message":"Ai_IntensiveCareUnit_Update -> Ai_Parasite_Update (#126)","measures":{"fuzzy_match_percent":7.3823924,"total_code":2972832,"matched_code":218348,"matched_code_percent":7.344781,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2193,"matched_functions_percent":28.753113,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T17:21:21Z","commit_sha":"971c261ecde3334f05f60502998155bab46a7a49","commit_message":"bodyprog: de-optimize more range checks","measures":{"fuzzy_match_percent":7.3823924,"total_code":2972832,"matched_code":218348,"matched_code_percent":7.344781,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2193,"matched_functions_percent":28.753113,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T17:07:04Z","commit_sha":"febd0fa05826f82235f45c8a94dd5c0c513aebd5","commit_message":"credits: de-optimize some range checks\n\nseems if(var - 0x123 < 0x456) is usually a range check, between 0x123\nand 0x123+0x456, thanks to decomp.dev wiki for pointing it out:\n\nhttps://wiki.decomp.dev/en/resources/guides/assembly-patterns#range-check\n\nstill a bunch of other similar checks in the code iirc, need to find a\ngood grep line to search them...","measures":{"fuzzy_match_percent":7.3823924,"total_code":2972832,"matched_code":218348,"matched_code_percent":7.344781,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2193,"matched_functions_percent":28.753113,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T08:40:30Z","commit_sha":"690102a1f5f5139ae9833c27699ed96d1a12afc0","commit_message":"maps: share 3 funcs (#125)\n\n* maps: share func_800CDAB8, allow maptool to share unmatched func syms\n\nsharing a func needs all the funcs it calls to also be shared\n(or only call into bodyprog)\n\npreviously only code-matched funcs could be shared properly, but now tool\nis able to share non-matched by just inserting sym entries for it\n(and updating .c to use the new sym name)\n\nif a non-matched shared func does get matched in future, tool should still\nbe able to match that across maps too (hopefully...)\n\n* maps: share `func_800D0968`\n\n* maps: share `func_800CDA88`\n\n* tools: skip some known false positive maps, remove dupe comments\n\n* maps: fixup sharedFunc_800CDF24_3_s03 params\n\n* fixup","measures":{"fuzzy_match_percent":7.3823924,"total_code":2972832,"matched_code":218348,"matched_code_percent":7.344781,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2193,"matched_functions_percent":28.753113,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T07:38:46Z","commit_sha":"8d03cf2b1847eedcfd003adad56e08e37b8f5aee","commit_message":"bodyprog: match 2 funcs (#124)\n\n* Match `func_800893D0`\n\n* Match `func_800D6554` (commented)","measures":{"fuzzy_match_percent":7.3414884,"total_code":2972832,"matched_code":217132,"matched_code_percent":7.3038774,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2181,"matched_functions_percent":28.595778,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T06:55:02Z","commit_sha":"179dbcbb7f1306877b75eefaa6c8d08501377b1c","commit_message":"Tidying pass (#123)\n\n* `AI_` -> `Ai_`\n\n* Pass 1\n\n* Pass 2\n\n* Pass 3\n\n* Pass 4\n\n* Pass 5","measures":{"fuzzy_match_percent":7.3373175,"total_code":2972832,"matched_code":217008,"matched_code_percent":7.2997065,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2180,"matched_functions_percent":28.582668,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T06:03:23Z","commit_sha":"5cdb661a05f535dca563497bdfc3a09899101dfa","commit_message":"maps: share `func_800D0A60`, add jtbl sharing to maptool","measures":{"fuzzy_match_percent":7.3373175,"total_code":2972832,"matched_code":217008,"matched_code_percent":7.2997065,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2180,"matched_functions_percent":28.582668,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T03:52:42Z","commit_sha":"c25f5ba219624d65ea0659a6cd201ba973b9fef7","commit_message":"maps: share 7 funcs between maps, match 2 bodyprog funcs (#122)\n\n* maps: share 4 funcs\n\n* fixup\n\n* maps: share `func_800D5098`\n\n* maps: share `func_800D67FC`\n\n* maps: share `func_800D6554`\n\n* bodyprog: match `func_80091778` & `func_8008150C`\n\nthanks @fmil95 for help!","measures":{"fuzzy_match_percent":7.0711737,"total_code":2972832,"matched_code":209096,"matched_code_percent":7.0335627,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2137,"matched_functions_percent":28.018879,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T00:51:54Z","commit_sha":"abe99c664467ccfe7c116501089c14a4cc6957b3","commit_message":"bodyprog/libsd: match `SdSpuMalloc`","measures":{"fuzzy_match_percent":6.095942,"total_code":2972832,"matched_code":180104,"matched_code_percent":6.058331,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2075,"matched_functions_percent":27.20598,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-13T00:03:48Z","commit_sha":"f5894daa950055a4717283fdf651f48f1021642d","commit_message":"Fix","measures":{"fuzzy_match_percent":6.083025,"total_code":2972832,"matched_code":179720,"matched_code_percent":6.045414,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2074,"matched_functions_percent":27.192867,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-12T06:18:08Z","commit_sha":"806dc0e45feafa8ddc08275cc6e2bccac4de83e7","commit_message":"Q notations and renames (#120)\n\n- Rename all Q notations from ARM to TI style.\n- add two fixed point `typedef`.\n- Rename `chara_type_4` to `charaId_4`.\n- Split `charaSpawnsA_24C[32]` to two `charaSpawnsA_24C[16]`, `charaSpawnsA_30C[16]` arrays.\n- Remove `FP_ANGLE_COUNT` and change it to `(FP_TO(1, Q12_SHIFT))`\n- Remove unused `SIN_LUT_SIZE` (if needed use `(FP_TO(1, Q12_SHIFT))` instead)\n- Update `e_ShCharacterId` names.\n- `_ShSaveGame`:\n - Rename `field_A5` to `mapRoomIdx_A5`.\n - Add description for `mapOverlayIdx_A4` and `mapIdx_A9`.\n - Rename a lot of fields to `eventFlags`.\n -Rename a lot of fields to `mapMarkingsFlags`.\n - Rename `field_25C` to `enemyKillCountPacked_25C`, but it needs to be split.\n - renamed several integer values to fixed point typedefs.\n- Fix `seenGameOverTips_2E` description.\n- Rename `unk_34[1]` to `palLanguageId`.\n- `s_Model`:\n - Rename `chara_type_0` to `charaId_0`\n - Add comments for vector types (possible issue: SVECTOR -> SVECTOR 3?)\n - Update `health_B0`.\n - Add alignment padding.\n\n- reflect the same changes to `maptool.py`","measures":{"fuzzy_match_percent":6.0704875,"total_code":2972832,"matched_code":179420,"matched_code_percent":6.0353227,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2069,"matched_functions_percent":27.12731,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-12T01:49:35Z","commit_sha":"cf2a4edcfa1073fcce518bf0319e16bc4a9165f3","commit_message":"bodyprog/libsd: match 3 funcs","measures":{"fuzzy_match_percent":6.0704875,"total_code":2972832,"matched_code":179420,"matched_code_percent":6.0353227,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2069,"matched_functions_percent":27.12731,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-12T01:32:24Z","commit_sha":"3c9e42aa8fdbd9e5c5fbeb52edbcc43ac8180d25","commit_message":"SAVE | Recognizing functions (#119)","measures":{"fuzzy_match_percent":6.035639,"total_code":2972832,"matched_code":178384,"matched_code_percent":6.0004735,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2066,"matched_functions_percent":27.087978,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-11T16:36:30Z","commit_sha":"451ddb2dd18b5b067d13ffb6b658f37ca6d1c96b","commit_message":"bodyprog/libsd: match `SdVbKeyOn`, use `SPU_OFF` defines","measures":{"fuzzy_match_percent":6.035639,"total_code":2972832,"matched_code":178384,"matched_code_percent":6.0004735,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2066,"matched_functions_percent":27.087978,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-10T17:24:32Z","commit_sha":"23bf7efeb3e1c8af67e175850969ed84949ee4ef","commit_message":"bodyprog/libsd: match `SdVoKeyOn`","measures":{"fuzzy_match_percent":6.016667,"total_code":2972832,"matched_code":177820,"matched_code_percent":5.981502,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2065,"matched_functions_percent":27.074865,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-10T16:38:33Z","commit_sha":"70347736f3d1d9b0a1dbf5eb30f144eaa1e5b1f0","commit_message":"options matches (#118)","measures":{"fuzzy_match_percent":5.99635,"total_code":2972832,"matched_code":177216,"matched_code_percent":5.9611845,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2064,"matched_functions_percent":27.061754,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-10T13:49:18Z","commit_sha":"bdec85cb58d68e13d69fd8203db482408b219e09","commit_message":"bodyprog/libsd: match 1 func","measures":{"fuzzy_match_percent":5.8970504,"total_code":2972832,"matched_code":174264,"matched_code_percent":5.861885,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2058,"matched_functions_percent":26.983086,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-10T12:51:17Z","commit_sha":"3a28b0b2ddd54a0cfa840e1cfa644a34d1fd7ef2","commit_message":"bodyprog/libsd: match 1 func","measures":{"fuzzy_match_percent":5.8700056,"total_code":2972832,"matched_code":173460,"matched_code_percent":5.8348403,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2057,"matched_functions_percent":26.969975,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-10T09:22:53Z","commit_sha":"a1500edeff3c73d53b12a0eb3096e0e253055b89","commit_message":"bodyprog: match 1 libsd func","measures":{"fuzzy_match_percent":5.8231816,"total_code":2972832,"matched_code":172068,"matched_code_percent":5.7880163,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2056,"matched_functions_percent":26.956865,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-10T08:01:36Z","commit_sha":"757cda086941363d733d657d8a4c3e1fec924679","commit_message":"math: switch to Q4.12 for angles, make `SpawnInfo.rotationY` unsigned (#116)\n\n* math: switch to Q4.12 for angles, make `SpawnInfo.rot` unsigned\n\n* tools: extend 2 byte charaGroups to 4 bytes\n\n* bodyprog: rename SpawnInfo fields to be closer to SubCharacter","measures":{"fuzzy_match_percent":5.7980204,"total_code":2972832,"matched_code":171320,"matched_code_percent":5.762855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2055,"matched_functions_percent":26.943752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-09T20:04:09Z","commit_sha":"20842c074e9001c80a05e92a3312d3977e94304f","commit_message":"Update README.md (#117)\n\nUpdate MAP overlay descriptions.","measures":{"fuzzy_match_percent":5.7980204,"total_code":2972832,"matched_code":171320,"matched_code_percent":5.762855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2055,"matched_functions_percent":26.943752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-09T03:16:18Z","commit_sha":"1bb2961a520c80607a626e56369d4419a316bfeb","commit_message":"bodyprog: remove dupe block in `vcRetCurCamMvType`","measures":{"fuzzy_match_percent":5.7980204,"total_code":2972832,"matched_code":171320,"matched_code_percent":5.762855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2055,"matched_functions_percent":26.943752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-09T03:15:39Z","commit_sha":"46da02f9480db81d45ffe652be16392057cfa1b8","commit_message":"bodyprog: remove dupe block in `vcRetCurCamMvType`","measures":{"fuzzy_match_percent":5.7980204,"total_code":2972832,"matched_code":171320,"matched_code_percent":5.762855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2055,"matched_functions_percent":26.943752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-09T03:10:20Z","commit_sha":"2155fdc91a44f6b926ef6e8eeb7ee90b7560e038","commit_message":"bodyprog: add defines to `vcRetSmoothCamMvF`","measures":{"fuzzy_match_percent":5.7980204,"total_code":2972832,"matched_code":171320,"matched_code_percent":5.762855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2055,"matched_functions_percent":26.943752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-09T02:56:57Z","commit_sha":"ee7d846a6c5e96550bd12b40d97b07e797b7c263","commit_message":"bodyprog: match 1 view func","measures":{"fuzzy_match_percent":5.7980204,"total_code":2972832,"matched_code":171320,"matched_code_percent":5.762855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2055,"matched_functions_percent":26.943752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-09T02:46:21Z","commit_sha":"a99e27512c77e7bec06ec2172037f716b2510800","commit_message":"bodyprog: match 1 view func","measures":{"fuzzy_match_percent":5.7980204,"total_code":2972832,"matched_code":171320,"matched_code_percent":5.762855,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2055,"matched_functions_percent":26.943752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T23:38:36Z","commit_sha":"a3bde7929d661fbf4591cf3b1d718557699cf1e1","commit_message":"tools: fix maptool header","measures":{"fuzzy_match_percent":5.7793174,"total_code":2972832,"matched_code":170764,"matched_code_percent":5.7441525,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2054,"matched_functions_percent":26.930641,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T23:35:55Z","commit_sha":"e2ef3ad9c4fe289bca816f5aade8ff289cf5f4d5","commit_message":"tools: merge map_shared_fns.py with maptool.py, build fixes","measures":{"fuzzy_match_percent":5.7793174,"total_code":2972832,"matched_code":170764,"matched_code_percent":5.7441525,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2054,"matched_functions_percent":26.930641,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T22:54:11Z","commit_sha":"1f23cab66c1ea4e089fe8cdeb7a8fa3a8d226f2b","commit_message":"Minor matches (#115)","measures":{"fuzzy_match_percent":5.7793174,"total_code":2972832,"matched_code":170764,"matched_code_percent":5.7441525,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2054,"matched_functions_percent":26.930641,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T21:41:30Z","commit_sha":"93a4480db6259a6fdbb59b3e19fbbc8cb6f22c1c","commit_message":"bodyprog: add 2 libsd matches (#114)","measures":{"fuzzy_match_percent":5.759135,"total_code":2972832,"matched_code":170164,"matched_code_percent":5.7239695,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2031,"matched_functions_percent":26.629082,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T21:30:40Z","commit_sha":"b68d7224ccdefb682250048402ed95295149a55d","commit_message":"maps: name AI update funcs, add maptool.py (#113)\n\n* bodyprog: update MapOverlayHeader chara spawn fields\n\n* fixup\n\n* tools: add maptool.py\n\n* maps: name AI update functions\n\n* fixups\n\n* tools: print updateFunc addr when using --search\n\n* fixup","measures":{"fuzzy_match_percent":5.7417774,"total_code":2972832,"matched_code":169648,"matched_code_percent":5.7066126,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2029,"matched_functions_percent":26.602858,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T18:41:08Z","commit_sha":"16c176a854760125eb59022a8bf8cdd925eaed38","commit_message":"MISC | README, removed unncesessary requirements and minor fix insertovl.py","measures":{"fuzzy_match_percent":5.7417774,"total_code":2972832,"matched_code":169648,"matched_code_percent":5.7066126,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2029,"matched_functions_percent":26.602858,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T16:10:47Z","commit_sha":"a9409e0b58da7e4381c4a3ce40560351bd259421","commit_message":"objdiff: update to encounter/objdiff@0c48d71, remove workaround (#111)","measures":{"fuzzy_match_percent":5.7417774,"total_code":2972832,"matched_code":169648,"matched_code_percent":5.7066126,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2029,"matched_functions_percent":26.602858,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T05:00:42Z","commit_sha":"b8c6a4f6a54a7f0c511ee338199bde34f594cee9","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":5.7417774,"total_code":2972832,"matched_code":169648,"matched_code_percent":5.7066126,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2029,"matched_functions_percent":26.602858,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-08T01:25:00Z","commit_sha":"5d1a890d5f9ad554d4fcbaaa5e41db2913d5b703","commit_message":"Adds matches to options (#110)\n\n* options matches","measures":{"fuzzy_match_percent":5.7417774,"total_code":2972832,"matched_code":169648,"matched_code_percent":5.7066126,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2029,"matched_functions_percent":26.602858,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-07T15:09:40Z","commit_sha":"deb0f20c484ce957eb2abe738451f6bee6b4d850","commit_message":"bodyprog: add `CHARA_COUNT`, small fixup to MapOverlayHeader","measures":{"fuzzy_match_percent":5.396652,"total_code":2972832,"matched_code":159388,"matched_code_percent":5.361487,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2018,"matched_functions_percent":26.458633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-07T13:23:51Z","commit_sha":"756e85a89ce7604d9797e23976f4f73cda4bb17f","commit_message":"bodyprog: rename `s_800A90FC` -> `g_Chara_FileInfo`\n\nThanks to @Sparagas for naming ShCharacterId enum","measures":{"fuzzy_match_percent":5.396652,"total_code":2972832,"matched_code":159388,"matched_code_percent":5.361487,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2018,"matched_functions_percent":26.458633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-07T11:28:33Z","commit_sha":"f12796b1f9227ed6bfc582c4a45e8d91e0e90148","commit_message":"bodyprog: add chara funcptrs/spawn lists to map overlay header","measures":{"fuzzy_match_percent":5.396652,"total_code":2972832,"matched_code":159388,"matched_code_percent":5.361487,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2018,"matched_functions_percent":26.458633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-07T06:08:30Z","commit_sha":"4de62136433e92d6b8a6ea0754966987cc5ae761","commit_message":"Update README.md\n\nChanged measures to fuzzy match","measures":{"fuzzy_match_percent":5.396652,"total_code":2972832,"matched_code":159388,"matched_code_percent":5.361487,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2018,"matched_functions_percent":26.458633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-06T22:03:24Z","commit_sha":"314697783b9f16d4b434843455add3fd82b7033d","commit_message":"bodyprog: update `s_DemoWork` and `s_DemoFrameData`","measures":{"fuzzy_match_percent":5.396652,"total_code":2972832,"matched_code":159388,"matched_code_percent":5.361487,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2018,"matched_functions_percent":26.458633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-06T19:51:16Z","commit_sha":"5d13d73ed7298f2537ba553f6e09591aae06ccca","commit_message":"Progress (#109)\n\n* MAP0_S00 matches\n\n* Credits data segments declaration touch ups","measures":{"fuzzy_match_percent":5.396652,"total_code":2972832,"matched_code":159388,"matched_code_percent":5.361487,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2018,"matched_functions_percent":26.458633,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-06T16:40:18Z","commit_sha":"83cc683c0e0f70359c6b40a2567ce6f2ae7994ee","commit_message":"Makefile: only remove macro.inc if it exists","measures":{"fuzzy_match_percent":5.3872333,"total_code":2972832,"matched_code":159108,"matched_code_percent":5.3520684,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2016,"matched_functions_percent":26.43241,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-06T15:45:09Z","commit_sha":"701c1223daa79fa6317ee4d09d54ff3d99112abc","commit_message":"Match credits overlay (#108)\n\n* credits wip\n\n* corrected data definition\n\n* format\n\n* move width table to seperate file\n\n* clang format","measures":{"fuzzy_match_percent":5.3856187,"total_code":2972832,"matched_code":153612,"matched_code_percent":5.167194,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2008,"matched_functions_percent":26.32752,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-06T10:12:04Z","commit_sha":"97d73ec012da009e0c883349ebc9fd5e7b169ede","commit_message":"saveload: name things and add comments","measures":{"fuzzy_match_percent":5.3436384,"total_code":2972832,"matched_code":152364,"matched_code_percent":5.1252136,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2007,"matched_functions_percent":26.314411,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-06T05:47:01Z","commit_sha":"78fce735a84167bf763a697e831bfaa7fb58709e","commit_message":"bodyprog: match 3 funcs (#107)\n\n* Match `func_8002E8E4`\n\n* Match `func_8002E9EC`\n\n* Match `func_80030884`; comment formatting\n\n* Comments, define small things\n\n* Tidying pass\n\n* Update bodyprog.h","measures":{"fuzzy_match_percent":5.3436384,"total_code":2972832,"matched_code":152364,"matched_code_percent":5.1252136,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2007,"matched_functions_percent":26.314411,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-05T09:15:16Z","commit_sha":"ad9d92d3644de4abcd0f5f818e0523ea718f1a9a","commit_message":"README: add venv setup section, 1 libsd match (#105)\n\n* README: add venv setup section\n\n* README: add python3-venv to apt install line\n\n* libsd: match `metaevent`","measures":{"fuzzy_match_percent":5.3394675,"total_code":2972832,"matched_code":152240,"matched_code_percent":5.1210427,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2004,"matched_functions_percent":26.275074,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-05T05:32:15Z","commit_sha":"3a57ed983c8a931d00ac250c235f3eb6dd00d501","commit_message":"Makefile: add --expand-div maspsx flag for smf_io.c, `SMF_MIDI_STAT`\nenum\n\nForgot to add to the PR award","measures":{"fuzzy_match_percent":5.315652,"total_code":2972832,"matched_code":151532,"matched_code_percent":5.097227,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2003,"matched_functions_percent":26.261965,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-05T05:16:43Z","commit_sha":"0d15906d3efc080a05e0c96b2dd0af6fd9dce28b","commit_message":"libsd: add structs/fields from SOUNDCD.IRX symbols (#103)\n\n* libsd: update `SMF_PORT` struct\n\ntodo: rename struct to match soundcd.irx\n\n* libsd: update struct fields with symbol names\n\nplayed it safe and just renamed fields which we have decomped code\naccessing, that could be compared against soundcd.irx code\n\n* libsd: use struct names from symbols\n\n* fixup\n\n* libsd: add remaining struct symbols\n\n* libsd: add `SMF_STAT` enum\n\n* libsd: add `SD_VAB_H` struct\n\n* libsd: rename libsd source files\n\n* libsd: fixups, name last unk func\n\n* libsd: update func params/locals from AUDIO.IRX syms\n\n* libsd: add readtrack and readtrack2 (needs jtbl)\n\n* libsd: add rodata for readtrack2\n\n* libsd: match `smf_data_entry`\n\n* libsd: match `control_change`, add --expand-div maspsx flag for smf_io.c","measures":{"fuzzy_match_percent":5.310808,"total_code":2972832,"matched_code":151532,"matched_code_percent":5.097227,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2003,"matched_functions_percent":26.261965,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-03T23:42:12Z","commit_sha":"839dc0df64af4ad7ef4e1e0c77ec36518b9ec4eb","commit_message":"bodyprog: match 9 funcs, add `s_ShSaveUserConfigContainer` (#102)\n\n* bodyprog: match 5 funcs\n\n* bodyprog: match 2 libsd funcs\n\n* bodyprog: move func defs to bodyprog.h\n\n* fixup\n\n* bodyprog: match SdUtKeyOffV/SdUtKeyOffVWithRROff","measures":{"fuzzy_match_percent":5.1689095,"total_code":2972832,"matched_code":151228,"matched_code_percent":5.0870013,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":2002,"matched_functions_percent":26.248852,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-03T06:30:37Z","commit_sha":"a4bd37c4f171808e2af107fd9b0dfb7b2c1bdcce","commit_message":"bodyprog: match 6 funcs, add `s_DemoWork/s_DemoFrameData` & `ShSaveUserConfig` substruct (#101)\n\n* game: add `ShSaveUserConfig` substruct to s_GameWork\n\n* bodyprog: match 2 Demo funcs, add DemoWork / DemoFrameData structs\n\n* bodyprog: add `OPT_SOUND_VOLUME_MIN` / `OPT_VIBRATION_DISABLED`\n\n* Fixup comment\n\n* bodyprog: match `Demo_SequenceAdvance` and `Demo_DemoDataRead`\n\n* bodyprog: add `g_Demo_PlayFileBufferPtr`\n\n* bodyprog: match 2 Demo funcs, rename Demo_JoyUpdate -> Demo_ControllerDataUpdate\n\n* fixups","measures":{"fuzzy_match_percent":5.1199327,"total_code":2972832,"matched_code":149772,"matched_code_percent":5.0380244,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":1993,"matched_functions_percent":26.130852,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-05-02T21:27:07Z","commit_sha":"ccf56fb76807706640a2cd3bad667dc9d559d62b","commit_message":"bodyprog: match 4 funcs (#100)","measures":{"fuzzy_match_percent":5.0866985,"total_code":2972832,"matched_code":148784,"matched_code_percent":5.00479,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7627,"matched_functions":1987,"matched_functions_percent":26.052183,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-24T06:26:45Z","commit_sha":"5f7df320d2b408fb44a33828dd437b1a151b8e85","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":5.0485935,"total_code":2972832,"matched_code":148544,"matched_code_percent":4.996717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1985,"matched_functions_percent":26.170073,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-23T19:05:52Z","commit_sha":"ee3fd8bab0f97a9d2fa4a63e103d666304c62830","commit_message":"maps: share matching functions from map0_s00 across maps (#98)\n\n* maps: share funcs between map0_s00 and map0_s01\n\n* maps: shared funcs between more overlays, rename sharedFunc names\n\nadds shared funcs for more of the map overlays, for the funcs we have\nmatched inside map0_s00\nonly really covers a couple more map overlays though, other ones either\ndidn't include these, or maybe script has issue identifying them?\n\nsharedFunc func names now include origin overlay / first overlay the\nfunc was seen inside, since some funcs might only appear in later\noverlays\n\n* maps: shared funcs in other overlays\n\n* maps: more shared funcs, add map_shared_fns.py tool\n\n* map_shared_fns: strip label names before compare\n\n* maps: add 2 shared funcs\n\n* maps: nullsub func fills\n\nsome of these could be part of some shared code too, but there's not\nenough to go off yet\n\nmaybe once more things like map header get worked out it might give\nmore info, eg. a bunch of shared funcs being ref'd alongside these\nmight indicate these are shared too\n\n* map_shared_fns: strip jtbl refs\n\n* map_shared_fns: update header\n\n* maps: share 2 funcs, 1 data variable\n\n* map_shared_fns: support matching sharedData_ symbols, autoupdate sym file\n\n* maps: match/share 2 funcs, 1 data variable\n\n* maps: match/share 1 func, 4 variables\n\n* map_shared_fns: copy symbol type/size comment from map1 sym file\n\n* maps: match/share 1 func\n\n* map_shared_fns: sort syms file after changes, process all maps with `all`\n\n* map_shared_fns: update header\n\n* maps: clang-format sharedFunc files\n\n* maps: use SQUARE macro, formatting fixups","measures":{"fuzzy_match_percent":5.0485935,"total_code":2972832,"matched_code":148544,"matched_code_percent":4.996717,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1985,"matched_functions_percent":26.170073,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-23T19:03:07Z","commit_sha":"8f1c8eaa315b40565027c17dd72d46c8406fa4a6","commit_message":"Credits matches (#99)\n\n* add matches from credits\n\n* remove commented line","measures":{"fuzzy_match_percent":3.2595923,"total_code":2972832,"matched_code":95360,"matched_code_percent":3.2077155,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1062,"matched_functions_percent":14.001319,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-22T03:20:06Z","commit_sha":"82e10ea8db9e5fe6c4e22ea463eaa7769bf50112","commit_message":"Fix wrong bitwise math","measures":{"fuzzy_match_percent":3.0507677,"total_code":2972832,"matched_code":89152,"matched_code_percent":2.9988914,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1057,"matched_functions_percent":13.935399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-21T16:50:03Z","commit_sha":"3777bfc7b89a4606d29470f952b40c67945da12b","commit_message":"Add `TEST_RNG` math macro func for later","measures":{"fuzzy_match_percent":3.0507677,"total_code":2972832,"matched_code":89152,"matched_code_percent":2.9988914,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1057,"matched_functions_percent":13.935399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-20T14:20:06Z","commit_sha":"e1c5fbf965bae2d53ebfa19676b073f43da2689f","commit_message":"Demagicking; use project's primitive type aliases in all camera func and struct declarations","measures":{"fuzzy_match_percent":3.0507677,"total_code":2972832,"matched_code":89152,"matched_code_percent":2.9988914,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1057,"matched_functions_percent":13.935399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-19T14:40:02Z","commit_sha":"9743cc9af34ace3969fe10ab405f6f239b27b7e7","commit_message":"bodyprog: progress (#97)\n\n* Match `func_80046B78`\n\n* Match `func_80046DCC`\n\n* Match `func_8004729C`\n\n* Match `func_800472BC`\n\n* Match `func_8004760C`\n\n* Match `Sd_SetVolume`","measures":{"fuzzy_match_percent":3.0507677,"total_code":2972832,"matched_code":89152,"matched_code_percent":2.9988914,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1057,"matched_functions_percent":13.935399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-19T03:45:05Z","commit_sha":"a0196171b0e282bba8864e08571d6ec37d5573ef","commit_message":"Restore correct type","measures":{"fuzzy_match_percent":3.0382545,"total_code":2972832,"matched_code":88780,"matched_code_percent":2.986378,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1051,"matched_functions_percent":13.856295,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T22:00:50Z","commit_sha":"eedb4bf21af3fb32b2fae5ed3b190a733f972565","commit_message":"bodyprog: match `Gfx_Init`","measures":{"fuzzy_match_percent":3.0382545,"total_code":2972832,"matched_code":88780,"matched_code_percent":2.986378,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1051,"matched_functions_percent":13.856295,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T14:27:31Z","commit_sha":"bd34d9a1f1e3c328724b0c4562de7a8f36f5fff9","commit_message":"Match `func_8006CC44`","measures":{"fuzzy_match_percent":3.0313923,"total_code":2972832,"matched_code":88576,"matched_code_percent":2.9795158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1050,"matched_functions_percent":13.843112,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T13:59:40Z","commit_sha":"9386818e401f9646a82529debc035581c8c6ae9c","commit_message":"Match `func_80074254`","measures":{"fuzzy_match_percent":3.0284321,"total_code":2972832,"matched_code":88488,"matched_code_percent":2.9765558,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1049,"matched_functions_percent":13.829927,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T12:15:22Z","commit_sha":"1b23e24620ff132d03da20460feed3c0647a3eaf","commit_message":"Match `func_8006BDDC`","measures":{"fuzzy_match_percent":3.0199554,"total_code":2972832,"matched_code":88236,"matched_code_percent":2.9680789,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1048,"matched_functions_percent":13.816744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T11:53:26Z","commit_sha":"0a474c110ca26a83a6703940b4481082af560f10","commit_message":"Tidying pass","measures":{"fuzzy_match_percent":3.0165915,"total_code":2972832,"matched_code":88136,"matched_code_percent":2.964715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1047,"matched_functions_percent":13.803559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T08:29:19Z","commit_sha":"6f33e7415c21b75699bc882723d2801707bc21b0","commit_message":"bodyprog: remove comment","measures":{"fuzzy_match_percent":3.0165915,"total_code":2972832,"matched_code":88136,"matched_code_percent":2.964715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1047,"matched_functions_percent":13.803559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T08:27:34Z","commit_sha":"a4bf2bbf9db399f7e38897fcaa75a9356afd8997","commit_message":"bodyprog: add SysState_GameOver_Update jump tables (thanks @Sezzary)","measures":{"fuzzy_match_percent":3.0165915,"total_code":2972832,"matched_code":88136,"matched_code_percent":2.964715,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1047,"matched_functions_percent":13.803559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T08:15:54Z","commit_sha":"58c968bfa963c6af8a48b57a2abaeb79f6ad0b42","commit_message":"bodyprog: fix nonmatching","measures":{"fuzzy_match_percent":2.9724586,"total_code":2972832,"matched_code":86824,"matched_code_percent":2.920582,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1046,"matched_functions_percent":13.790377,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T06:59:05Z","commit_sha":"2adffcf826cbbc19fc60f4524fb06733b5c0e641","commit_message":"bodyprog: add SysState_EventXXX funcs, SysState_GameOver_Update (#95)\n\n* bodyprog: add SysState_EventXXX funcs, Sd_EngineCmd fixups\n\n* bodyprog: add `SysState_GameOver_Update` (needs jump table)\n\n* bodyprog: comment fixup\n\n* bodyprog: comment fixup","measures":{"fuzzy_match_percent":2.9723778,"total_code":2972832,"matched_code":86664,"matched_code_percent":2.9152,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1045,"matched_functions_percent":13.777192,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T06:31:35Z","commit_sha":"baa0aadd1d160a6e2a520d0a89aaf9730eabbf6b","commit_message":"Update coding conventions; remove stray spaces","measures":{"fuzzy_match_percent":2.9604027,"total_code":2972832,"matched_code":86308,"matched_code_percent":2.903225,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1042,"matched_functions_percent":13.737639,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T04:54:51Z","commit_sha":"143ff03924704a8952f5c0505ed6630e5ec0476f","commit_message":"Progress (#93)\n\n* Non-match `func_801E30C4`\n\n* Revert\n\n* Comment match `func_801E3304`; add `FP_COLOR` macro\n\n* Match `func_801E69E8`\n\n* Non-match `func_801E6DB0`\n\n* Update bodyprog.h\n\nFixes 1\\3\n\n* Update saveload.h\n\nFixes 2\\3\n\n* Update saveload.c\n\nFixes 3\\3\n\n* Formatting; add missing func decls\n\n* Remove function match from incorrect overlay\n\n* Demagicking\n\n* Match `func_801E6DB0`\n\n* Fix compilation error\n\n* Fix `func_801E30C4`\n\n---------\n\nCo-authored-by: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":2.9604836,"total_code":2972832,"matched_code":86468,"matched_code_percent":2.908607,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1043,"matched_functions_percent":13.750824,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-18T02:21:58Z","commit_sha":"7a342d854781be8f13149e3efb704398076e485f","commit_message":"Progress (#94)","measures":{"fuzzy_match_percent":2.9108338,"total_code":2972832,"matched_code":84992,"matched_code_percent":2.8589575,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1039,"matched_functions_percent":13.698088,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-15T15:53:55Z","commit_sha":"7f4e9012fde1b2a5542b9a78023a40a573481c37","commit_message":"Update game.h (#92)\n\n* Update game.h\n\nadded my research stuff from\r\nhttps://github.com/Sparagas/Silent-Hill/blob/main/010%20Editor%20-%20Binary%20Templates/inc_sh1_save.bt\n\n* Fill in enums with data from @Sparagas; formatting\n\n---------\n\nCo-authored-by: Sezz <sezzary@outlook.com>","measures":{"fuzzy_match_percent":2.8721905,"total_code":2972832,"matched_code":84340,"matched_code_percent":2.8370254,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1033,"matched_functions_percent":13.618985,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-15T13:06:03Z","commit_sha":"3ab606091faf2d3045d0c48dc483106ac621b60e","commit_message":"Match `func_801E2D8C` (contributors: @IWILLCRAFT-M0d, @fgsfdsfgs, @Sparagas)","measures":{"fuzzy_match_percent":2.8721905,"total_code":2972832,"matched_code":84340,"matched_code_percent":2.8370254,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1033,"matched_functions_percent":13.618985,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-15T07:30:08Z","commit_sha":"8b3ac46947be8c3418a6513918a90382b74e743c","commit_message":"Add math macros, name 2 functions and some variables","measures":{"fuzzy_match_percent":2.8619647,"total_code":2972832,"matched_code":84036,"matched_code_percent":2.8267994,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1032,"matched_functions_percent":13.605801,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-14T19:52:30Z","commit_sha":"4e471cc7c00c2d4ef8d859de7e81d582b05c0613","commit_message":"bodyprog: fix 1 NON_MATCHING, add missing fn decls (#91)","measures":{"fuzzy_match_percent":2.8619647,"total_code":2972832,"matched_code":84036,"matched_code_percent":2.8267994,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1032,"matched_functions_percent":13.605801,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-14T11:39:18Z","commit_sha":"d5e94bd56d67f11522db83627c6f1415fd939939","commit_message":"Name some variables related to string drawing","measures":{"fuzzy_match_percent":2.861803,"total_code":2972832,"matched_code":83732,"matched_code_percent":2.8165736,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1031,"matched_functions_percent":13.592617,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-14T09:44:07Z","commit_sha":"b40b1b3e41e89c3ebc7f0f76b182fb3922f3ed3c","commit_message":"Tidying, demagicking","measures":{"fuzzy_match_percent":2.861803,"total_code":2972832,"matched_code":83732,"matched_code_percent":2.8165736,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1031,"matched_functions_percent":13.592617,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-14T01:27:46Z","commit_sha":"2b26cf25a92b9f2cdffa7f6a68926c66da67fccd","commit_message":"saveload: add 4 matches (symbols changed) (#90)\n\n* saveload: add 3 matches\n\n* saveload: match `func_801E737C`","measures":{"fuzzy_match_percent":2.861803,"total_code":2972832,"matched_code":83732,"matched_code_percent":2.8165736,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1031,"matched_functions_percent":13.592617,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-13T23:20:56Z","commit_sha":"95a764682427e8088946433e335a1e04095762b6","commit_message":"docs: improve wording","measures":{"fuzzy_match_percent":2.8362384,"total_code":2972832,"matched_code":82972,"matched_code_percent":2.7910087,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1027,"matched_functions_percent":13.539882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-13T21:36:02Z","commit_sha":"1ae3d8c243922e615403596b82f9a1b6191938d6","commit_message":"symbols: add `GsWSMATRIX` symbol (#89)","measures":{"fuzzy_match_percent":2.8362384,"total_code":2972832,"matched_code":82972,"matched_code_percent":2.7910087,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1027,"matched_functions_percent":13.539882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-13T21:01:44Z","commit_sha":"5866c24c9088af2cf9eb2b74b8ad6bec592d1e21","commit_message":"add and fix nonmatching in credits, add addPrimFast macro (#87)\n\n* add and fix nonmatching in credits, add addPrimFast macro\n\n* fix format\n\n* use Game_StateSetNext in func_801E2FC0","measures":{"fuzzy_match_percent":2.8362384,"total_code":2972832,"matched_code":82972,"matched_code_percent":2.7910087,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1027,"matched_functions_percent":13.539882,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-13T20:41:24Z","commit_sha":"522f4b51965dcb870d6ca982038f2096e4faa696","commit_message":"silentassets: add support for `Famitsuu Wave 2gatsu-gou Vol. 7` demo (#88)","measures":{"fuzzy_match_percent":2.8066368,"total_code":2972832,"matched_code":82092,"matched_code_percent":2.7614074,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1024,"matched_functions_percent":13.50033,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-13T20:00:23Z","commit_sha":"6c7789321d9d136fdf2b7d675f7053d12f588f95","commit_message":"bodyprog: match `vcMoveAndSetCamera`, finish vc_util.c, small fixups (#86)\n\n* bodyprog: match `vcMoveAndSetCamera`, finish vc_util.c, small fixups\n\n* bodyprog: small fixups\n\n* math: add `FP_MULTIPLY_FLOAT`","measures":{"fuzzy_match_percent":2.8066368,"total_code":2972832,"matched_code":82092,"matched_code_percent":2.7614074,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1024,"matched_functions_percent":13.50033,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-13T13:15:14Z","commit_sha":"06784b614c60cfb570bd5aa8f9041ee6bbfe73a9","commit_message":"Progress (#85)\n\n* Match `func_80045BD8`\n\n* Update bodyprog.c\n\n* Tidying\n\n* Match `func_8003ED64`\n\n* Match `func_8003EDA8`","measures":{"fuzzy_match_percent":2.7845705,"total_code":2972832,"matched_code":81436,"matched_code_percent":2.7393408,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1023,"matched_functions_percent":13.487145,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-13T04:57:43Z","commit_sha":"721c9a5b05c8a98dd467ca31de51e36387057003","commit_message":"maps: add `g_MapOverlayHeader`, skip overlapping garbage bodyprog data, small fixups (#84)\n\n* bodyprog: change `s_8008A384` -> `s_SubCharacter`\n\n* maps: add `g_MapOverlayHeader`, skip overlapping garbage bodyprog data\n\n* bodyprog: match `GameState_InGame_Update`\n\n* bodyprog: add `s_800BCE18` struct, match `vcInitCamera`\n\n* bodyprog: match `func_8003CB3C`\n\n* bodyprog: match 3 GameState update fns\n\n* b_konami: add footer_data segment to splat config","measures":{"fuzzy_match_percent":2.783494,"total_code":2972832,"matched_code":81404,"matched_code_percent":2.7382643,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1021,"matched_functions_percent":13.460777,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-12T20:18:09Z","commit_sha":"b4c307b7395acf9798cadfb612b760f44bb44b7f","commit_message":"bodyprog: small fixups","measures":{"fuzzy_match_percent":2.7203891,"total_code":2972832,"matched_code":79528,"matched_code_percent":2.6751597,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1015,"matched_functions_percent":13.381675,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-12T19:05:45Z","commit_sha":"59b5592e8fb080ebfdbda9c26ddc18b38c2a4fb0","commit_message":"symbols: add names for GameState/SysState update funcs, match `SysState_Fmv_Update` (#83)\n\n* symbols: add names for GameState/SysState update funcs\n\n* bodyprog: match `SysState_Fmv_Update`\n\n* symbols: add GameState func names for other overlays","measures":{"fuzzy_match_percent":2.7203891,"total_code":2972832,"matched_code":79528,"matched_code_percent":2.6751597,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1015,"matched_functions_percent":13.381675,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-12T05:45:30Z","commit_sha":"1fd898eaffef9e4e9f79c8fd0d4799b003974578","commit_message":"Fix non-matching arg","measures":{"fuzzy_match_percent":2.7039738,"total_code":2972832,"matched_code":79040,"matched_code_percent":2.6587443,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1014,"matched_functions_percent":13.36849,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-12T04:58:31Z","commit_sha":"48d54e61f59bf0922c89a046b41ecdbdcf7b49fe","commit_message":"Formatting, demagicking, comments","measures":{"fuzzy_match_percent":2.6674027,"total_code":2972832,"matched_code":78252,"matched_code_percent":2.6322377,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1004,"matched_functions_percent":13.23665,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-11T22:06:23Z","commit_sha":"9142b1fad1ba786260f0ee370fa204a089061d11","commit_message":"b_konami: small fixups, remove temp var (#81)","measures":{"fuzzy_match_percent":2.6674027,"total_code":2972832,"matched_code":78252,"matched_code_percent":2.6322377,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1004,"matched_functions_percent":13.23665,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-11T21:43:14Z","commit_sha":"349b284d61a6901df3b96b99a612a66653d97238","commit_message":"Matching `B_KONAMI.BIN` (#80)","measures":{"fuzzy_match_percent":2.6674027,"total_code":2972832,"matched_code":78252,"matched_code_percent":2.6322377,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1004,"matched_functions_percent":13.23665,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-11T18:19:53Z","commit_sha":"eae8f263164400f5f9dfb8681239de51c52fcefb","commit_message":"bodyprog: match 2 functions (#79)","measures":{"fuzzy_match_percent":2.5913808,"total_code":2972832,"matched_code":75992,"matched_code_percent":2.5562158,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":1000,"matched_functions_percent":13.183916,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-11T05:53:54Z","commit_sha":"627cbeccc28116e240842e2ba83bbd6e86b67283","commit_message":"Progress (#78)\n\n* Match func_8006A3B4\n\n* Uncomment func_800480FC\n\n* Non-match func_801E3684\n\n* Match func_801E386C\n\n* Match func_8003C3A0\n\n* Match func_8003D938\n\n* Minor cleanup for consistency and demagicking\n\n* Update func_801E42F8 to match func_801E3684\n\n* Comment\n\n* Proper ordering of unnamed externs","measures":{"fuzzy_match_percent":2.5833077,"total_code":2972832,"matched_code":75752,"matched_code_percent":2.5481427,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":998,"matched_functions_percent":13.157548,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T17:55:13Z","commit_sha":"223ab08c1f03db363df4589ab54062b1094106ab","commit_message":"bodyprog: add 2 matches, KeyframeCamera field names (symbols changed) (#77)","measures":{"fuzzy_match_percent":2.5524955,"total_code":2972832,"matched_code":74836,"matched_code_percent":2.5173302,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":993,"matched_functions_percent":13.091628,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T16:37:25Z","commit_sha":"1d25d2e9ddf3b00f7c59824aaa5f1f02e530b6e7","commit_message":"bodyprog: Dms naming fixups (symbols changed) (#76)\n\n* bodyprog: dms fixups\n\n* docs: update sh1_dms.bt","measures":{"fuzzy_match_percent":2.5329854,"total_code":2972832,"matched_code":74256,"matched_code_percent":2.4978201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":991,"matched_functions_percent":13.065261,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T16:22:16Z","commit_sha":"248345a311bdc7e495ecb3c50050354a7d3c4bfc","commit_message":"bodyprog: match `Dms_CharacterGetPosRotByIndex` (symbols changed) (#75)","measures":{"fuzzy_match_percent":2.5329854,"total_code":2972832,"matched_code":74256,"matched_code_percent":2.4978201,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":991,"matched_functions_percent":13.065261,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T14:14:21Z","commit_sha":"05f1650402cb6717f2edba119e47c3c0405f70e4","commit_message":"bodyprog: match 2 Dms funcs, add GsOUT_PACKET_P sym (#73)","measures":{"fuzzy_match_percent":2.524105,"total_code":2972832,"matched_code":73992,"matched_code_percent":2.4889398,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":990,"matched_functions_percent":13.052076,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T14:00:15Z","commit_sha":"477c081c8ab6085182afa130007e254fb005762c","commit_message":"bodyprog: fix 1 NON_MATCHING (#72)","measures":{"fuzzy_match_percent":2.5106497,"total_code":2972832,"matched_code":73592,"matched_code_percent":2.4754846,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":988,"matched_functions_percent":13.025708,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T13:40:39Z","commit_sha":"5484731353c3c653c1570db88fdfa4f43bc5dd4a","commit_message":"bodyprog: fix 3 NON_MATCHINGs (#71)","measures":{"fuzzy_match_percent":2.509237,"total_code":2972832,"matched_code":73340,"matched_code_percent":2.4670079,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":987,"matched_functions_percent":13.012526,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T08:55:25Z","commit_sha":"cc497abc203807ed0fabcf3fd44d44fdcb2b50c3","commit_message":"FP_TILE -> FP_METER as per Sparagas' suggestion","measures":{"fuzzy_match_percent":2.5081673,"total_code":2972832,"matched_code":73116,"matched_code_percent":2.459473,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":984,"matched_functions_percent":12.972973,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T08:40:24Z","commit_sha":"77f29d566d6ad349b5af1d15f2eab1df7ce1f65e","commit_message":"Formatting and grammar","measures":{"fuzzy_match_percent":2.5081673,"total_code":2972832,"matched_code":73116,"matched_code_percent":2.459473,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":984,"matched_functions_percent":12.972973,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T07:23:11Z","commit_sha":"ec8128d344544afd09f1b9659fd92a28865c9b62","commit_message":"Progress (#58)\n\n* Match func_8008A384\n\n* Match func_8008A398\n\n* Match func_8008A3AC\n\n* Name variables meaningfully\n\n* Name anum functions\n\n* Match func_80066E40\n\n* Match func_80066E7C\n\n* Name params\n\n* Name variables\n\n* Name more things\n\n* Match func_8004B684\n\n* Figure out player coords properly\n\n* Update game.h\n\n* Match func_8008A35C\n\n* Update bodyprog_80085D78.c\n\n* Give rough names to fields\n\n* Update comments\n\n* Match func_800480FC\n\n* Match func_80048244\n\n* Match func_800482D8\n\n* Update Makefile\n\n* Formatting\n\n* Minor changes\n\n* 3 matches\n\n* Matches; remove redundant spaces\n\n* Add several matches\n\n* Update submodules\n\n* Wrap non-matchings\n\n* Revert \"Update submodules\"\n\nThis reverts commit 47a3d024dac0e0192df95e4b3d239c9d38ef4cf1.\n\n* Remove spaces\n\n* Update bodyprog.h\n\n* Formatting\n\n* Convert hex values\n\n* Formatting, doc comments\n\n* Player property enum; use screen position macros; formatting\n\n* Define player properties\n\n* Simplify flags\n\n* Update Coding Conventions.md\n\n* Screen position conversions\n\n* FIX\n\n* Restore vw_system.h doc comments\n\n* Update vw_system.h\n\n* Minor fixes\n\n---------\n\nCo-authored-by: IWILLCRAFT <103061546+IWILLCRAFT-M0d@users.noreply.github.com>","measures":{"fuzzy_match_percent":2.5081673,"total_code":2972832,"matched_code":73116,"matched_code_percent":2.459473,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":984,"matched_functions_percent":12.972973,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T02:11:34Z","commit_sha":"64c620252688a5385a0665fe8db0d60cd3e0f2c2","commit_message":"Progress (#70)\n\nAdded names for variables in some structs (Identification done by @Sparagas), fixed some functions that were creating small missmatches and added functions that declared data information into rodata segment.","measures":{"fuzzy_match_percent":2.4544072,"total_code":2972832,"matched_code":71920,"matched_code_percent":2.4192421,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":970,"matched_functions_percent":12.788399,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-10T00:15:05Z","commit_sha":"88d327e3213881e4babb75ca0e578d153e06b742","commit_message":"docs: update release list to mention silentassets support (#69)","measures":{"fuzzy_match_percent":2.3684824,"total_code":2972832,"matched_code":69256,"matched_code_percent":2.3296304,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":961,"matched_functions_percent":12.669744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-09T23:17:33Z","commit_sha":"a22b6a8e0d7e144f0910067e7977b32eca06841d","commit_message":"splat: add overlay syms to bodyprog instead of main (#68)","measures":{"fuzzy_match_percent":2.3684824,"total_code":2972832,"matched_code":69256,"matched_code_percent":2.3296304,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":961,"matched_functions_percent":12.669744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-09T23:09:07Z","commit_sha":"72dccbde1eaa76b083395e66b518507d26da323a","commit_message":"splat: add `global_vram_end` to configs, add overlay syms to bodyprog (#67)","measures":{"fuzzy_match_percent":2.3684824,"total_code":2972832,"matched_code":69256,"matched_code_percent":2.3296304,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":961,"matched_functions_percent":12.669744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-09T20:31:37Z","commit_sha":"9d08f819d6a2016e407b72cf3bc370678d6188ac","commit_message":"MISC | Updating Splat version (#65)","measures":{"fuzzy_match_percent":2.3684824,"total_code":2972832,"matched_code":69256,"matched_code_percent":2.3296304,"total_data":0,"matched_data":0,"matched_data_percent":100,"total_functions":7585,"matched_functions":961,"matched_functions_percent":12.669744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":100,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-09T02:58:06Z","commit_sha":"b84ddb0023580cb7e489f0d2ff24f99c18e156a1","commit_message":"silentassets: add support for demos/protos/other releases (#64)\n\n* silentassets: add support for demos/other releases\n\nThanks to horror_x for SHExtract code, demo offsets mostly from there\n\n* silentassets: change USES_XA_CONTAINER to NO_XA_CONTAINER\n\n* silentassets: small fixup\n\n* Taikeban file count adjustment\n\n* silentassets: rename Region -> Release","measures":{"fuzzy_match_percent":2.3684824,"total_code":2972832,"matched_code":69256,"matched_code_percent":2.3296304,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":961,"matched_functions_percent":12.669744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-08T18:53:15Z","commit_sha":"b64de71d6aa8898c6634696464b1f02b3d7aa1cd","commit_message":"docs: add `File Formats.md`, `sh1_dms.bt`, release info, minor fixups (#63)\n\n* docs: add `File Formats.md`, add release info\n\n* docs: wording","measures":{"fuzzy_match_percent":2.3684824,"total_code":2972832,"matched_code":69256,"matched_code_percent":2.3296304,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":961,"matched_functions_percent":12.669744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-08T03:28:07Z","commit_sha":"a5d173f0f4df1556a4971cab640f8242b7e358d1","commit_message":"Identification of functions and matches of OPTION.BIN (#62)\n\n* Matches and removing redundant definitions\n\n* Recognizing functions for OPTION.BIN\n\n* Minor edit on comment\n\n* Minor naming edit","measures":{"fuzzy_match_percent":2.3684824,"total_code":2972832,"matched_code":69256,"matched_code_percent":2.3296304,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":961,"matched_functions_percent":12.669744,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-05T09:58:05Z","commit_sha":"de08b71d6556bc8af1905d8c1a763c46b1c83569","commit_message":"bodyprog: libsd matches (symbols changed) (#60)\n\n* bodyprog: libsd matches\n\n* bodyprog: `read32bit`\n\n* bodyprog: match `track_head_read`\n\n* bodyprog: delta_time_conv fixups\n\n* bodyprog: name `pitch_calc` param\n\n* bodyprog: libsd comment update\n\n* bodyprog: rename unk field\n\n* bodyprog: match DMSHeader_FixOffsets and DMSEntry_FixOffsets\n\n* bodyprog: add `DMS_CharacterSearch`\n\n* bodyprog: add SVECTOR3, rename to `DMS_CharacterFindIndexByName`\n\n* bodyprog: add `DMS_CharacterGetStartPosRot`\n\n* bodyprog: match `DMS_CameraGetTargetPos` and `Math_LerpFixed12`","measures":{"fuzzy_match_percent":2.336728,"total_code":2972832,"matched_code":68312,"matched_code_percent":2.2978761,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":959,"matched_functions_percent":12.643374,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-03T04:15:25Z","commit_sha":"f7df136c1f009a62e0e38f01f611d024367564b5","commit_message":"permute.sh: use -G0 for overlays, allow specify num threads with -j (#59)","measures":{"fuzzy_match_percent":2.2036562,"total_code":2972832,"matched_code":64356,"matched_code_percent":2.1648045,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":935,"matched_functions_percent":12.326961,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-04-01T12:28:47Z","commit_sha":"4793d44e3620063182ecfa949a289ac5c102a824","commit_message":"view: add 3 matches, stream.c fixups, update maspsx submodule (#57)\n\n* view: add 2 matches, fixups for stream.c\n\n* bodyprog: match `Gfx_DebugStringPosition`\n\n* insertovl: fix for filetable comment, make iso in build folder\n\n* tools: update maspsx submodule\n\n* bodyprog: 1 view match, add FP_FLOAT_TO and FP_MULTIPLY_PRECISE\n\n* bodyprog: clarify comment","measures":{"fuzzy_match_percent":2.2036562,"total_code":2972832,"matched_code":64356,"matched_code_percent":2.1648045,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":935,"matched_functions_percent":12.326961,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-29T18:42:42Z","commit_sha":"8da083614ba8343acc15ea3c25a7ba739a672d44","commit_message":"Merge pull request #56 from fgsfdsfgs/master\n\nsilentassets: Fix XA file extraction","measures":{"fuzzy_match_percent":2.1525266,"total_code":2972832,"matched_code":62836,"matched_code_percent":2.1136749,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":931,"matched_functions_percent":12.274226,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-28T13:17:44Z","commit_sha":"99d20196205f46ceae330eb228e97a56ce79ae3a","commit_message":"Bodyprog matches (#55)\n\n* Match func_800453E8\n\n* Match func_80045014\n\n* Refine func_80044FE0\n\n* Update bodyprog.h\n\n* Match func_80041C24\n\n* Minor adjustments\n\n* Update game.h\n\n* Match func_80043D64\n\n* Match func_80043C7C\n\n* Update bodyprog_80040A64.c\n\n* Match func_80044CA4; add Anim_GetTimeStep inline\n\n* Match func_80048954\n\n* Match func_80043E50\n\n* Match func_80043F2C\n\n* Match func_8003708C\n\n* Match func_800C9874\n\n* Match func_80044044\n\n* Match func_80042DE8\n\n* Match func_80043338\n\n* Match func_800436D8\n\n* Match func_80048000\n\n* Match func_80047F18\n\n* Match func_800481F8\n\n* Match func_800862F8\n\n* Match func_8008716C\n\n* Match func_80087360\n\n* Match func_80087540, func_800879FC\n\n* Update variables\n\n* Remove spaces\n\n* Match func_800892A4\n\n* Match func_800892DC\n\n* Match func_8008944C\n\n* Match func_80089470\n\n* Match func_80089494\n\n* Matches\n\n* Tidy up unknown vars\n\n* Tidy up","measures":{"fuzzy_match_percent":2.1525266,"total_code":2972832,"matched_code":62836,"matched_code_percent":2.1136749,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":931,"matched_functions_percent":12.274226,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-25T18:20:23Z","commit_sha":"9eebaba20e9cc3f3ef59aeb7f35cbb2e6ac352c1","commit_message":"readme: fix map1_s04 shield","measures":{"fuzzy_match_percent":2.0510206,"total_code":2972832,"matched_code":59872,"matched_code_percent":2.0139718,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":906,"matched_functions_percent":11.944628,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-25T18:16:07Z","commit_sha":"fe447db12684331d7c3c205c6acf1b618d771f46","commit_message":"bodyprog/map0: add 13 matches, fix some NON_MATCHING (#54)\n\n* map0_s00: add 8 matches, fix some non_matching\n\n* bodyprog: add 5 `view` matches\n\n* map0_s00: minor fixup\n\n* bodyprog: fixup includes\n\n* small fixups\n\n* README: make progress shields clickable","measures":{"fuzzy_match_percent":2.0510206,"total_code":2972832,"matched_code":59872,"matched_code_percent":2.0139718,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":906,"matched_functions_percent":11.944628,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-25T15:20:14Z","commit_sha":"fbca9b8662b63010a2ea0f2f32faaf48daff8b6d","commit_message":"Bodyprog matches (#53)\n\n* Matches\n\n* Match func_80037124\n\n* Comments\n\n* Correct wrong anim system assumptions\n\n* Match func_80044F14\n\n* Match func_80044B38\n\n* Match func_80044FE0; renames\n\n* Renames, comments\n\n* Clarify structs; comments\n\n* Match func_80044F6C, func_80045468\n\n* Unify structs\n\n* Unify structs\n\n* Various matches\n\n* Match func_80044DF0\n\n* Better names\n\n* Rename struct and uncomment function\n\n* Fixes","measures":{"fuzzy_match_percent":2.0054681,"total_code":2972832,"matched_code":58260,"matched_code_percent":1.9597474,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":889,"matched_functions_percent":11.720501,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T16:41:19Z","commit_sha":"a1a27fbb910d85baaaf734f69bba57c12dad7436","commit_message":"Bodyprog matches (#52)\n\n* TILE_UNIT -> FP_TILE\n\n* Match func_800449F0; incorporate emoose's s_Model struct\n\n* Renames\n\n* Update pad button flags enum\n\n* Name a function\n\n* Update bodyprog.h\n\n* Corrections\n\n* Bodyprog matches\n\n* Match func_8003BE28\n\n* Match func_8003BC8C\n\n* Match func_8003BCF4\n\n* Bodyprog matches\n\n* Bodyprog matches\n\n* Match AreaLoad_UpdatePlayerPosition\n\n* Renames\n\n* Use ifdefs\n\n* Update Makefile\n\n* Update math.h","measures":{"fuzzy_match_percent":1.9477118,"total_code":2972832,"matched_code":56572,"matched_code_percent":1.9029666,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":873,"matched_functions_percent":11.509559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T16:00:28Z","commit_sha":"42000fd5aa7e3616dfb87afbfa78d643eadce3cd","commit_message":"bodyprog: edit func_8002EA78 to include missing function parameter","measures":{"fuzzy_match_percent":1.9013183,"total_code":2972832,"matched_code":55368,"matched_code_percent":1.8624666,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":858,"matched_functions_percent":11.311799,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T15:30:51Z","commit_sha":"24fe9e64b46904bf54ab288d74668633ddd417e6","commit_message":"bodyprog: add func_8002EA28","measures":{"fuzzy_match_percent":1.8990309,"total_code":2972832,"matched_code":55300,"matched_code_percent":1.8601792,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":857,"matched_functions_percent":11.298615,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T15:15:30Z","commit_sha":"eaaa0856679d3e66a4e9478de098b100c60c5fdf","commit_message":"bodyprog: add func_8002E9A0","measures":{"fuzzy_match_percent":1.8963399,"total_code":2972832,"matched_code":55220,"matched_code_percent":1.857488,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":856,"matched_functions_percent":11.285432,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T15:06:14Z","commit_sha":"d1583b59d72cbfa2ee5e4411547e3c122641caf4","commit_message":"bodyprog: add func_8002E914 + make small edit to func_8002E898","measures":{"fuzzy_match_percent":1.8937835,"total_code":2972832,"matched_code":55144,"matched_code_percent":1.8549316,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":855,"matched_functions_percent":11.272248,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T14:48:10Z","commit_sha":"b4ac8d614c67475d23398219aacec41aca31ad30","commit_message":"bodyprog: make small edit to func_8002E898","measures":{"fuzzy_match_percent":1.8918997,"total_code":2972832,"matched_code":55088,"matched_code_percent":1.8530478,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":854,"matched_functions_percent":11.259064,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T14:47:18Z","commit_sha":"5f9663ebd1daf9387129387402125cdf76bf91af","commit_message":"bodyprog: add func_8002E898","measures":{"fuzzy_match_percent":1.8918997,"total_code":2972832,"matched_code":55088,"matched_code_percent":1.8530478,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":854,"matched_functions_percent":11.259064,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T14:37:10Z","commit_sha":"422de1f8d01427d41062bf6f8f13657b45591c31","commit_message":"bodyprog: add func_8002E76C","measures":{"fuzzy_match_percent":1.8898815,"total_code":2972832,"matched_code":55028,"matched_code_percent":1.8510295,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":853,"matched_functions_percent":11.24588,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T14:30:46Z","commit_sha":"905032ad0bc092c7bd889b7fb64a8c2b0bc7e69b","commit_message":"bodyprog: add func_8002E730 & modify s_800B5508","measures":{"fuzzy_match_percent":1.8871903,"total_code":2972832,"matched_code":54948,"matched_code_percent":1.8483386,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":852,"matched_functions_percent":11.232697,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-21T14:15:37Z","commit_sha":"da8d945ec4f1a24e2afd0912aca72bdb0579ac3a","commit_message":"bodyprog: update func_8002E7BC","measures":{"fuzzy_match_percent":1.8851721,"total_code":2972832,"matched_code":54888,"matched_code_percent":1.8463204,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":851,"matched_functions_percent":11.219512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-20T20:26:44Z","commit_sha":"a6bb67a40693838ed5a80f896295e6de2e9c4b94","commit_message":"OBJDIFF | Update","measures":{"fuzzy_match_percent":1.8851721,"total_code":2972832,"matched_code":54888,"matched_code_percent":1.8463204,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":7585,"matched_functions":851,"matched_functions_percent":11.219512,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-20T04:49:53Z","commit_sha":"e60eb658a49483db0049b25528ab0ec778434db2","commit_message":"Progress (#51)\n\n* Fill out anim-related fields\n\n* Update math macros\n\n* notes, renames\n\n* 2 matches\n\n* Cleanup\n\n* More consistent prefix for all fixed-point macros\n\n* Conventions; revise fixed-point math macros\n\n* Fix type; clarity","measures":{"fuzzy_match_percent":1.7518868,"total_code":3199008,"matched_code":54888,"matched_code_percent":1.7157819,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":851,"matched_functions_percent":10.018837,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-20T01:27:15Z","commit_sha":"d190a2701afc299e5546b85b49eeb11eeb84e29e","commit_message":"MULT | Workaround for the report issue and matches in map0_s00 and option screen documentation","measures":{"fuzzy_match_percent":1.7468853,"total_code":3199008,"matched_code":54728,"matched_code_percent":1.7107804,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":850,"matched_functions_percent":10.007064,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-19T10:20:10Z","commit_sha":"d75a7a11dee43ac2cfd03a5777904b02e1beb4bb","commit_message":"bodyprog: add 5 `view` matches (#50)","measures":{"fuzzy_match_percent":1.7415086,"total_code":3199008,"matched_code":54556,"matched_code_percent":1.7054036,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":847,"matched_functions_percent":9.971745,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-19T07:43:01Z","commit_sha":"8a9ab74057997894eb1dab2de8bc9156bef5562c","commit_message":"MAP0_S00 | Match and created include file","measures":{"fuzzy_match_percent":1.7061226,"total_code":3199008,"matched_code":53424,"matched_code_percent":1.6700176,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":842,"matched_functions_percent":9.91288,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-19T03:55:28Z","commit_sha":"1c130db5dd0eca783530fbf24b61e91333c4a83a","commit_message":"bodyprog: add 5 `view` matches (#49)\n\n* bodyprog: add 4 `view` matches\n\n* bodyprog: match `vwOresenHokan`","measures":{"fuzzy_match_percent":1.7403833,"total_code":3199008,"matched_code":54520,"matched_code_percent":1.7042783,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":846,"matched_functions_percent":9.959972,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-18T17:17:01Z","commit_sha":"dd779df64669c6ae0590393ff32cf0b8907a9ed8","commit_message":"Bodyprog matches (#48)\n\n* Match JOY_Init\n\n* Progress\n\n* Update bodyprog.c\n\n* Match JOY_ReadP1\n\n* Update bodyprog.h\n\n* Match func_8003528C\n\n* Update types\n\n* Match GameFs_MapLoad\n\n* Rename field\n\n* Match GameFs_PlayerMapAnimLoad\n\n* Match func_8007F1CC\n\n* Match func_8007F250\n\n* Match func_8007F26C\n\n* Match func_8007F2AC\n\n* Match func_8007F308\n\n* Match func_8007FD2C\n\n* Match func_8007FD3C\n\n* Match func_80080458\n\n* Match func_80080514\n\n* Match func_80080594\n\n* Matches\n\n* Matches\n\n* Match func_8008074C\n\n* Uncomment function\n\n* Update map0_s00.c\n\n* Match func_80041E98\n\n* Match func_80041FF0\n\n* 2 matches\n\n* Fix type\n\n* Temp ifdef","measures":{"fuzzy_match_percent":1.7049973,"total_code":3199008,"matched_code":53388,"matched_code_percent":1.6688924,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":841,"matched_functions_percent":9.901106,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T19:40:47Z","commit_sha":"5a337ca087df6e2d9577020565b6a7bd3c345c95","commit_message":"Update README.md","measures":{"fuzzy_match_percent":1.6487548,"total_code":3199008,"matched_code":51752,"matched_code_percent":1.6177515,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":812,"matched_functions_percent":9.5596895,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T19:34:57Z","commit_sha":"96e67497dd19535ef78d078d2f01efab1116dc72","commit_message":"Update README.md","measures":{"fuzzy_match_percent":1.6487548,"total_code":3199008,"matched_code":51752,"matched_code_percent":1.6177515,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":812,"matched_functions_percent":9.5596895,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T18:07:40Z","commit_sha":"3bf756a826483028b1e385a35ebcc691c5b33198","commit_message":"Makefile: fixup `progress`, match `func_8008F470` (#47)\n\n* Makefile: fixup `progress`, match `func_8008F470`\n\n* Update Makefile","measures":{"fuzzy_match_percent":1.6487548,"total_code":3199008,"matched_code":51752,"matched_code_percent":1.6177515,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":812,"matched_functions_percent":9.5596895,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T12:24:16Z","commit_sha":"f7098b413ee8130b139aa652693ac655e001b510","commit_message":"Bodyprog matches (#46)\n\n* Match various demo functions; renames\n\n* Match func_8008F914\n\n* Matches, renames\n\n* Enforce naming convention\n\n* Matcehs\n\n* Match func_80032D1C\n\n* Match Settings_ScreenXYSet\n\n* Match MainLoop_ShouldWarmReset\n\n* Fix formatting\n\n* Fix merge errors\n\n* Update bodyprog.c\n\n* Update bodyprog.c\n\n* Address issues with commented matches\n\n* enums -> s32\n\n* Cleanup\n\n* Update bodyprog_8004A87C.c","measures":{"fuzzy_match_percent":1.6451287,"total_code":3199008,"matched_code":51636,"matched_code_percent":1.6141255,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":811,"matched_functions_percent":9.547916,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T05:41:17Z","commit_sha":"1f43e963159b3c014bc4b4aa0168181bc9c2a138","commit_message":"Update Makefile","measures":{"fuzzy_match_percent":1.5779829,"total_code":3199008,"matched_code":49488,"matched_code_percent":1.5469795,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":791,"matched_functions_percent":9.312456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T03:27:14Z","commit_sha":"36bd932edc09987d5254687b737247a5060a64bc","commit_message":"OBJDIFF | Minor adjustments","measures":{"fuzzy_match_percent":1.5779829,"total_code":3199008,"matched_code":49488,"matched_code_percent":1.5469795,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":8494,"matched_functions":791,"matched_functions_percent":9.312456,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T03:02:58Z","commit_sha":"94889bf0350d2b1490407888f680245e45f23f0d","commit_message":"include_asm: remove .endfunc (#45)","measures":{"fuzzy_match_percent":1.3055915,"total_code":3860932,"matched_code":47508,"matched_code_percent":1.2304801,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":785,"matched_functions_percent":4.3696074,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-16T01:44:49Z","commit_sha":"1782d567b52b4e693d08eaa49e7bc89fad94c5ca","commit_message":"MainCharacter: struct fix (#44)","measures":{"fuzzy_match_percent":1.3055915,"total_code":3860932,"matched_code":47508,"matched_code_percent":1.2304801,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":785,"matched_functions_percent":4.3696074,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-15T22:06:28Z","commit_sha":"e8a411d0a7aa3ffec916404b537a60ecb5b944fa","commit_message":"Removed splat submodule","measures":{"fuzzy_match_percent":1.3055915,"total_code":3860932,"matched_code":47508,"matched_code_percent":1.2304801,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":785,"matched_functions_percent":4.3696074,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-15T19:32:11Z","commit_sha":"8fdc66f6b0ad6283bb1db971cb09576e30e2656e","commit_message":"MULT | MAP0_S00 matches and little Makefile adjustment","measures":{"fuzzy_match_percent":1.3055915,"total_code":3860932,"matched_code":47508,"matched_code_percent":1.2304801,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":785,"matched_functions_percent":4.3696074,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-15T06:42:35Z","commit_sha":"40700eea74cddc29b32a7ac5624c7944b0cbcbf1","commit_message":"Update map0_s00.c","measures":{"fuzzy_match_percent":1.2967854,"total_code":3860932,"matched_code":47168,"matched_code_percent":1.221674,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":775,"matched_functions_percent":4.313944,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-15T03:42:11Z","commit_sha":"ea84b5e995d0c98a8b5f62196e5abb90037ec345","commit_message":"MAP | Adding matches","measures":{"fuzzy_match_percent":1.1424185,"total_code":3860932,"matched_code":41208,"matched_code_percent":1.067307,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":734,"matched_functions_percent":4.085722,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-15T01:56:13Z","commit_sha":"0be07654847a5793de28686707371d957cadbd97","commit_message":"splat: add global_vram_start & sym.bodyprog to configs (#43)\n\n* splat: add global_vram_start & sym.bodyprog to configs\n\nfixes issues with symbols being placed inside known ones in disassembly\neg. D_800BA134 now becomes g_SysWork+0x174\n\n* screens: remove aliased externs","measures":{"fuzzy_match_percent":1.138378,"total_code":3860932,"matched_code":41208,"matched_code_percent":1.067307,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":734,"matched_functions_percent":4.085722,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-14T22:06:46Z","commit_sha":"cdd94f05c25ac16f1ceb15d183bdc80afa22eac4","commit_message":"Adjusted makefile and workflow.","measures":{"fuzzy_match_percent":1.138378,"total_code":3860932,"matched_code":41208,"matched_code_percent":1.067307,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":734,"matched_functions_percent":4.085722,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-14T18:53:53Z","commit_sha":"7da87e8d88c057a731d73ddc2db02baf903285b8","commit_message":"bodyprog: libsd matches & fixes (#42)","measures":{"fuzzy_match_percent":1.138378,"total_code":3860932,"matched_code":41208,"matched_code_percent":1.067307,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":734,"matched_functions_percent":4.085722,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-14T18:27:18Z","commit_sha":"e89f1363ed6c1dd95758ce06e0559900b7c014fe","commit_message":"Make | rules renaming","measures":{"fuzzy_match_percent":1.110509,"total_code":3860932,"matched_code":40132,"matched_code_percent":1.0394381,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":726,"matched_functions_percent":4.041191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-14T04:02:49Z","commit_sha":"0d1b5fe7c01b85eff78ebaf58d9a562ead287e18","commit_message":"libsd: more midi matches, start SMF_MIDI / SMF_PORT structs (#40)","measures":{"fuzzy_match_percent":1.110509,"total_code":3860932,"matched_code":40132,"matched_code_percent":1.0394381,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":726,"matched_functions_percent":4.041191,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-13T21:16:14Z","commit_sha":"1d6e1dbef3321ac33de3a9642036ffc993d4ac62","commit_message":"objdiff_generate: allow objdiff auto-build (#38)","measures":{"fuzzy_match_percent":0.9528269,"total_code":3860932,"matched_code":34312,"matched_code_percent":0.8886973,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":692,"matched_functions_percent":3.8519342,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-13T03:35:52Z","commit_sha":"eaca9c63c53c1dc066d778e8a67268501fb512a8","commit_message":"Add `libsd` & `view` matches (#39)\n\n* libsd: add vab/seq matches\n\n* view: match vcRetThroughDoorCamEndF & vcAdvantageDistOfOldCurRoad\n\nthanks @fmil95 & @1superchip for matching\n\n* libsd: add MIDI magic defines\n\n* view: fixup distances/angles\n\nhopefully converted them right\n\n* bodyprog: match Game_SaveGameClear, rename to SaveGameInitialize\n\nthanks @fmil95 for match","measures":{"fuzzy_match_percent":0.9528269,"total_code":3860932,"matched_code":34312,"matched_code_percent":0.8886973,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":692,"matched_functions_percent":3.8519342,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-12T11:02:23Z","commit_sha":"7c110e747bdc51279e5474855b32b5b6cfb3aa41","commit_message":"Grammar in README","measures":{"fuzzy_match_percent":0.87305343,"total_code":3860932,"matched_code":31232,"matched_code_percent":0.8089239,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":666,"matched_functions_percent":3.7072084,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-12T10:15:55Z","commit_sha":"38770e5360ef54d4c14ed00694009efd1c221692","commit_message":"Revise math macros (#37)\n\n* Revise math macros\n\n* Add MUL_FIXED function macro","measures":{"fuzzy_match_percent":0.87305343,"total_code":3860932,"matched_code":31232,"matched_code_percent":0.8089239,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":666,"matched_functions_percent":3.7072084,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-11T16:04:29Z","commit_sha":"ad567afa926a4771c199bb7751ca17892cbb872b","commit_message":"Merge pull request #36 from Sezzary/destroy-magic\n\nMacros, fields","measures":{"fuzzy_match_percent":0.87305343,"total_code":3860932,"matched_code":31232,"matched_code_percent":0.8089239,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":666,"matched_functions_percent":3.7072084,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-11T10:20:45Z","commit_sha":"9fe2be79c7e54b2d718b9e44c4bc69a323c8a0e1","commit_message":"Fix variable in ifdef","measures":{"fuzzy_match_percent":0.87305343,"total_code":3860932,"matched_code":31232,"matched_code_percent":0.8089239,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":666,"matched_functions_percent":3.7072084,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T20:13:22Z","commit_sha":"5acccf58475055a5a94f9ba9580e00b585978d2a","commit_message":"MULT | Makefile + Readme touch ups + Added a few functions","measures":{"fuzzy_match_percent":0.87305343,"total_code":3860932,"matched_code":31232,"matched_code_percent":0.8089239,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":666,"matched_functions_percent":3.7072084,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T17:16:28Z","commit_sha":"7d51fe9c4caf060a779c0b23398a9333a2b55f74","commit_message":"MISC | Adding percentage bars 4","measures":{"fuzzy_match_percent":0.846635,"total_code":3860932,"matched_code":31200,"matched_code_percent":0.808095,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":665,"matched_functions_percent":3.701642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T16:11:02Z","commit_sha":"cb27f7ab782ea706514dc4ea0446d86d64ed3990","commit_message":"MISC | Adding percentage bars 3","measures":{"fuzzy_match_percent":0.846635,"total_code":3860932,"matched_code":31200,"matched_code_percent":0.808095,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":665,"matched_functions_percent":3.701642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T16:05:21Z","commit_sha":"f18e6ea006ce7ff4bf833ae4bd416dba878b06bc","commit_message":"MISC | Adding percentage bars 2","measures":{"fuzzy_match_percent":0.846635,"total_code":3860932,"matched_code":31200,"matched_code_percent":0.808095,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":665,"matched_functions_percent":3.701642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T15:32:37Z","commit_sha":"a97e0871307f6531d0fa610bfb56c551971afba5","commit_message":"MISC | Adding percentage bars 1","measures":{"fuzzy_match_percent":0.846635,"total_code":3860932,"matched_code":31200,"matched_code_percent":0.808095,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":665,"matched_functions_percent":3.701642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T15:28:37Z","commit_sha":"2244c2a3e02755bff94c618c1d91dae337e4675e","commit_message":"Added missing psyq objects from screens","measures":{"fuzzy_match_percent":0.846635,"total_code":3860932,"matched_code":31200,"matched_code_percent":0.808095,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":665,"matched_functions_percent":3.701642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T14:27:43Z","commit_sha":"92352df59acb0903e50d0a99b248fbdfecf8cb98","commit_message":"*Plural","measures":{"fuzzy_match_percent":0.846635,"total_code":3860932,"matched_code":31200,"matched_code_percent":0.808095,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":665,"matched_functions_percent":3.701642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T14:17:45Z","commit_sha":"fe146d7c10e19dfa10fb289ea987cad62c90bd22","commit_message":"Merge branch 'master' of https://github.com/Vatuu/silent-hill-decomp","measures":{"fuzzy_match_percent":0.8463859,"total_code":3862068,"matched_code":31200,"matched_code_percent":0.80785733,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":17965,"matched_functions":665,"matched_functions_percent":3.701642,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":280,"complete_units":0}},{"timestamp":"2025-03-10T08:28:24Z","commit_sha":"65f90d3a386a5420b37d7efbe1890222eabc7acc","commit_message":"Add savegame structs & matches, GameState inline funcs. (#34)\n\n* bodyprog: match SysState_GamePaused handler\n\n* bodyprog: add savegame structs & matches","measures":{"fuzzy_match_percent":0.86961794,"total_code":3758892,"matched_code":31200,"matched_code_percent":0.8300318,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":16823,"matched_functions":665,"matched_functions_percent":3.9529216,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":69,"complete_units":0}},{"timestamp":"2025-03-09T22:03:50Z","commit_sha":"967168f45b360883dc561e0a765a269396bdfa0b","commit_message":"Add GameState/SysState enums (#33)\n\n* Add GameState/SysState enums\n\n* stream: add inline Game_StateSetNext\n\n* game.h: add Game_StateSetNext inline","measures":{"fuzzy_match_percent":0.845994,"total_code":3758892,"matched_code":30312,"matched_code_percent":0.8064078,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":16823,"matched_functions":659,"matched_functions_percent":3.9172559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":69,"complete_units":0}},{"timestamp":"2025-03-09T19:48:31Z","commit_sha":"d033a3dfce406f53f9ecab0ce3954a8cd66e4e52","commit_message":"Updated permissions for objdiff","measures":{"fuzzy_match_percent":0.845994,"total_code":3758892,"matched_code":30312,"matched_code_percent":0.8064078,"total_data":26672,"matched_data":26672,"matched_data_percent":100,"total_functions":16823,"matched_functions":659,"matched_functions_percent":3.9172559,"complete_code":0,"complete_code_percent":0,"complete_data":0,"complete_data_percent":0,"total_units":69,"complete_units":0}}]