diff --git a/docs/backlog.md b/docs/backlog.md index d37aa67a91..1390c8fa65 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -2,7 +2,7 @@ > Generated by `tools/backlog.py render` from `.run/backlog.jsonl`. These are functions the Phase-21 automation got **close** on but did NOT byte-match. The whole-binary byte-gate is the sole arbiter (G3/P9): **byte-matches bank and are NOT listed here** — only genuine near-misses/blockers are. Ranked by hand-session priority: **reach** (×N propagation leverage) → **closeness** (match_one mismatch count, lower = closer) → **size**. Each row's `best_draft` is the closest C the machine reached — resume from there. -**Open near-misses:** 855 · by status {'near': 800, 'matched': 1, 'failed': 54} · by class {'was 12 with a stop-searching verdict; now 2 (index-loop form + a1-spill + §148-C slider)': 1, 'cse1 elision-count: target has 16 combine-orphaned sign-ext slots, draft 12; permuter-confirmed floor from BOTH basins; §147-A/B/E refuted': 1, 'plumbing': 3, 'struct': 3, 'regalloc-order': 3, 'schedule': 2, 'loose-typing': 1, 'WAVE': 8, 'SOLVED: ghost wedge (cookbook §151) — r3000 blockage(load,store)=2 makes zero-wedge unreachable by source order': 1, None: 823, 'STRUCT': 9} +**Open near-misses:** 852 · by status {'near': 797, 'matched': 1, 'failed': 54} · by class {'was 12 with a stop-searching verdict; now 2 (index-loop form + a1-spill + §148-C slider)': 1, 'cse1 elision-count: target has 16 combine-orphaned sign-ext slots, draft 12; permuter-confirmed floor from BOTH basins; §147-A/B/E refuted': 1, 'plumbing': 3, 'struct': 3, 'regalloc-order': 3, 'schedule': 2, 'loose-typing': 1, 'WAVE': 8, 'SOLVED: ghost wedge (cookbook §151) — r3000 blockage(load,store)=2 makes zero-wedge unreachable by source order': 1, None: 820, 'STRUCT': 9} | # | addr | reach | class | nins | status | closeness | where it stuck | best draft | |--:|------|------:|-------|-----:|--------|----------:|----------------|------------| @@ -336,528 +336,525 @@ | 328 | func_80184698 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80184698.c` | | 329 | func_80184718 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80184718.c` | | 330 | func_8017F4BC | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8017F4BC.c` | -| 331 | func_80181070 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80181070.c` | -| 332 | func_801810A4 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801810A4.c` | -| 333 | func_801810D8 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801810D8.c` | -| 334 | func_801819CC | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801819CC.c` | -| 335 | func_80180554 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80180554.c` | -| 336 | func_80181E5C | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80181E5C.c` | -| 337 | func_80189DDC | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80189DDC.c` | -| 338 | func_8018ABE0 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8018ABE0.c` | -| 339 | func_80189A60 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80189A60.c` | -| 340 | func_8018278C | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8018278C.c` | -| 341 | func_801827C0 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801827C0.c` | -| 342 | func_80186A58 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80186A58.c` | -| 343 | func_8017F2BC | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8017F2BC.c` | -| 344 | func_8017F184 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8017F184.c` | -| 345 | func_80185F58 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80185F58.c` | -| 346 | func_8018A3C8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8018A3C8.c` | -| 347 | func_80180528 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80180528.c` | -| 348 | func_801818EC | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_801818EC.c` | -| 349 | func_8017DA3C | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017DA3C.c` | -| 350 | func_8017EDA8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017EDA8.c` | -| 351 | func_801816CC | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_801816CC.c` | -| 352 | func_8017D914 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017D914.c` | -| 353 | func_8017FD58 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017FD58.c` | -| 354 | func_8017F830 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017F830.c` | -| 355 | func_8018276C | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8018276C.c` | -| 356 | func_80183AF8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80183AF8.c` | -| 357 | func_80180C34 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80180C34.c` | -| 358 | func_8018BDA4 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8018BDA4.c` | -| 359 | func_8017C8E4 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017C8E4.c` | -| 360 | func_80186D30 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80186D30.c` | -| 361 | func_8017F0D8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017F0D8.c` | -| 362 | func_8017E358 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017E358.c` | -| 363 | func_8017E35C | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017E35C.c` | -| 364 | func_801811B4 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_801811B4.c` | -| 365 | func_8017CDBC | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017CDBC.c` | -| 366 | func_80180D10 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80180D10.c` | -| 367 | func_8018316C | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8018316C.c` | -| 368 | func_8017E808 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017E808.c` | -| 369 | func_80180654 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80180654.c` | -| 370 | func_80186DE8 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80186DE8.c` | -| 371 | func_801838EC | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801838EC.c` | -| 372 | func_801892C0 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801892C0.c` | -| 373 | func_801859E4 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801859E4.c` | -| 374 | func_80189504 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80189504.c` | -| 375 | func_8017C918 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017C918.c` | -| 376 | func_801813F0 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801813F0.c` | -| 377 | func_80181F6C | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80181F6C.c` | -| 378 | func_8017EA04 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017EA04.c` | -| 379 | func_8017EBA8 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017EBA8.c` | -| 380 | func_80185404 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80185404.c` | -| 381 | func_8017D7C4 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017D7C4.c` | -| 382 | func_8017D974 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017D974.c` | -| 383 | func_80180950 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80180950.c` | -| 384 | func_8013BD34 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8013BD34.c` | -| 385 | func_80181784 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181784.c` | -| 386 | func_801803F4 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_801803F4.c` | -| 387 | func_8017E818 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E818.c` | -| 388 | func_80181B0C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181B0C.c` | -| 389 | func_8017F138 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F138.c` | -| 390 | func_8017E290 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E290.c` | -| 391 | func_80181A94 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181A94.c` | -| 392 | func_8017D1B4 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017D1B4.c` | -| 393 | func_8017D220 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017D220.c` | -| 394 | func_80181028 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181028.c` | -| 395 | func_8018533C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8018533C.c` | -| 396 | func_8017F268 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F268.c` | -| 397 | func_8017F120 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F120.c` | -| 398 | func_80185A68 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80185A68.c` | -| 399 | func_8017D49C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017D49C.c` | -| 400 | func_8017F5E0 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F5E0.c` | -| 401 | func_8017DFCC | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017DFCC.c` | -| 402 | func_80181C1C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181C1C.c` | -| 403 | func_8017E9F4 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E9F4.c` | -| 404 | func_8017F3A8 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F3A8.c` | -| 405 | func_8017E304 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E304.c` | -| 406 | func_8017E0F0 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017E0F0.c` | -| 407 | func_80182D78 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80182D78.c` | -| 408 | func_8017F920 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F920.c` | -| 409 | func_80187A8C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80187A8C.c` | -| 410 | func_8017F1F8 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F1F8.c` | -| 411 | func_8017EC84 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017EC84.c` | -| 412 | func_8017E9CC | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017E9CC.c` | -| 413 | func_8017EAE0 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017EAE0.c` | -| 414 | func_80186984 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80186984.c` | -| 415 | func_8017F414 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F414.c` | -| 416 | func_8017E090 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017E090.c` | -| 417 | func_801853F8 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_801853F8.c` | -| 418 | func_8017F20C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F20C.c` | -| 419 | func_80182654 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80182654.c` | -| 420 | func_8017CDE4 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017CDE4.c` | -| 421 | func_8017DFAC | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017DFAC.c` | -| 422 | func_8017EF1C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017EF1C.c` | -| 423 | func_8017EEF4 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017EEF4.c` | -| 424 | func_8017E950 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017E950.c` | -| 425 | func_8017CDD8 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017CDD8.c` | -| 426 | func_80180890 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80180890.c` | -| 427 | func_80180D74 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80180D74.c` | -| 428 | func_8017F568 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017F568.c` | -| 429 | func_80180D14 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80180D14.c` | -| 430 | func_80183C58 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80183C58.c` | -| 431 | func_8013B7F4 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8013B7F4.c` | -| 432 | func_8018208C | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8018208C.c` | -| 433 | func_801877DC | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_801877DC.c` | -| 434 | func_80189630 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80189630.c` | -| 435 | func_80184630 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80184630.c` | -| 436 | func_8017E850 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017E850.c` | -| 437 | func_8017DCF4 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017DCF4.c` | -| 438 | func_8017D988 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017D988.c` | -| 439 | func_80182E38 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80182E38.c` | -| 440 | func_80180B54 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80180B54.c` | -| 441 | func_8017D600 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017D600.c` | -| 442 | func_8017F6C4 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017F6C4.c` | -| 443 | func_8013B7AC | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8013B7AC.c` | -| 444 | func_8017FFCC | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017FFCC.c` | -| 445 | func_801811F4 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_801811F4.c` | -| 446 | func_80180DB8 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80180DB8.c` | -| 447 | func_8017D184 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017D184.c` | -| 448 | func_8017F160 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017F160.c` | -| 449 | func_8017F4D0 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017F4D0.c` | -| 450 | func_8018033C | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8018033C.c` | -| 451 | func_80181138 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80181138.c` | -| 452 | func_8017E048 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017E048.c` | -| 453 | func_8017F3BC | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017F3BC.c` | -| 454 | func_801845B4 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_801845B4.c` | -| 455 | func_8017FF30 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017FF30.c` | -| 456 | func_80185288 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80185288.c` | -| 457 | func_8017E890 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017E890.c` | -| 458 | func_8018555C | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8018555C.c` | -| 459 | func_801826EC | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_801826EC.c` | -| 460 | func_8017DB00 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017DB00.c` | -| 461 | func_80181054 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_80181054.c` | -| 462 | func_8017D704 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017D704.c` | -| 463 | func_8017FA00 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017FA00.c` | -| 464 | func_8018B6F4 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8018B6F4.c` | -| 465 | func_8017EEC8 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017EEC8.c` | -| 466 | func_8017C6B8 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017C6B8.c` | -| 467 | func_8017DB44 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017DB44.c` | -| 468 | func_80187050 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_80187050.c` | -| 469 | func_8017DD18 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017DD18.c` | -| 470 | func_8017D308 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017D308.c` | -| 471 | func_8017D8B0 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017D8B0.c` | -| 472 | func_8017F080 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017F080.c` | -| 473 | func_80180548 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_80180548.c` | -| 474 | func_8017DE78 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017DE78.c` | -| 475 | func_80185A18 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_80185A18.c` | -| 476 | func_8017FF2C | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017FF2C.c` | -| 477 | func_801803E0 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_801803E0.c` | -| 478 | func_8017D828 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017D828.c` | -| 479 | func_8017DC08 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017DC08.c` | -| 480 | func_80187C64 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_80187C64.c` | -| 481 | func_8017FA90 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017FA90.c` | -| 482 | func_8017F320 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017F320.c` | -| 483 | func_80181478 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_80181478.c` | -| 484 | func_801868E0 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_801868E0.c` | -| 485 | func_8018AB74 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8018AB74.c` | -| 486 | func_8017DE70 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017DE70.c` | -| 487 | func_8018A640 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8018A640.c` | -| 488 | func_8017DC54 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017DC54.c` | -| 489 | func_8017F480 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017F480.c` | -| 490 | func_8017EF7C | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017EF7C.c` | -| 491 | func_80182FF0 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_80182FF0.c` | -| 492 | func_80182EE8 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_80182EE8.c` | -| 493 | func_8017E240 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017E240.c` | -| 494 | func_8017CE94 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017CE94.c` | -| 495 | func_8017D2A4 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017D2A4.c` | -| 496 | func_8017FAC8 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017FAC8.c` | -| 497 | func_80181F60 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_80181F60.c` | -| 498 | func_8018381C | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8018381C.c` | -| 499 | func_8017F500 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017F500.c` | -| 500 | func_8017D1E0 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017D1E0.c` | -| 501 | func_8017DDBC | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017DDBC.c` | -| 502 | func_8017F1BC | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017F1BC.c` | -| 503 | func_8017EFB0 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017EFB0.c` | -| 504 | func_80182708 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_80182708.c` | -| 505 | func_8017F8A8 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017F8A8.c` | -| 506 | func_8017EBEC | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017EBEC.c` | -| 507 | func_80184DE8 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_80184DE8.c` | -| 508 | func_8018333C | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8018333C.c` | -| 509 | func_8018056C | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8018056C.c` | -| 510 | func_80180EB8 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_80180EB8.c` | -| 511 | func_801856F0 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_801856F0.c` | -| 512 | func_8018DFDC | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8018DFDC.c` | -| 513 | func_801827A8 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_801827A8.c` | -| 514 | func_8017CFC4 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017CFC4.c` | -| 515 | func_8017D7A4 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017D7A4.c` | -| 516 | func_80182514 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_80182514.c` | -| 517 | func_8018545C | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8018545C.c` | -| 518 | func_80181134 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_80181134.c` | -| 519 | func_8017FE10 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017FE10.c` | -| 520 | func_80182E34 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_80182E34.c` | -| 521 | func_8017D864 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017D864.c` | -| 522 | func_8017DB70 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017DB70.c` | -| 523 | func_8017FB68 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017FB68.c` | -| 524 | func_8018ACB4 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8018ACB4.c` | -| 525 | func_8017EBF4 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017EBF4.c` | -| 526 | func_80180A5C | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_80180A5C.c` | -| 527 | func_801830EC | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_801830EC.c` | -| 528 | func_801804F4 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_801804F4.c` | -| 529 | func_8017E6C0 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017E6C0.c` | -| 530 | func_8017F024 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017F024.c` | -| 531 | func_80181254 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_80181254.c` | -| 532 | func_80184A1C | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80184A1C.c` | -| 533 | func_80184430 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80184430.c` | -| 534 | func_80185934 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80185934.c` | -| 535 | func_80180D28 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80180D28.c` | -| 536 | func_8017E1F4 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_8017E1F4.c` | -| 537 | func_80182C24 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80182C24.c` | -| 538 | func_8017DAD0 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_8017DAD0.c` | -| 539 | func_80183C4C | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80183C4C.c` | -| 540 | func_80181300 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80181300.c` | -| 541 | func_8017E218 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_8017E218.c` | -| 542 | func_8017F8AC | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_8017F8AC.c` | -| 543 | func_80180E98 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80180E98.c` | -| 544 | func_80188650 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80188650.c` | -| 545 | func_80183A18 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80183A18.c` | -| 546 | func_80183A24 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80183A24.c` | -| 547 | func_80180CA0 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80180CA0.c` | -| 548 | func_8017ED0C | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8017ED0C.c` | -| 549 | func_8017FB4C | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8017FB4C.c` | -| 550 | func_801840C0 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_801840C0.c` | -| 551 | func_8017F344 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8017F344.c` | -| 552 | func_80180214 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80180214.c` | -| 553 | func_801803DC | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_801803DC.c` | -| 554 | func_80181304 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80181304.c` | -| 555 | func_8018B9DC | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8018B9DC.c` | -| 556 | func_80180840 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80180840.c` | -| 557 | func_80182E08 | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_80182E08.c` | -| 558 | func_8017F750 | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_8017F750.c` | -| 559 | func_8018133C | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_8018133C.c` | -| 560 | func_8017D894 | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_8017D894.c` | -| 561 | func_80182268 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80182268.c` | -| 562 | func_8018337C | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8018337C.c` | -| 563 | func_801800F4 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_801800F4.c` | -| 564 | func_80181990 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80181990.c` | -| 565 | func_8017D8C8 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017D8C8.c` | -| 566 | func_80184AA8 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80184AA8.c` | -| 567 | func_8017E9EC | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017E9EC.c` | -| 568 | func_80182D18 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80182D18.c` | -| 569 | func_8017D524 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017D524.c` | -| 570 | func_8017D784 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017D784.c` | -| 571 | func_801856E4 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_801856E4.c` | -| 572 | func_8017EEFC | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017EEFC.c` | -| 573 | func_8017FC50 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017FC50.c` | -| 574 | func_8017D554 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017D554.c` | -| 575 | func_80183018 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_80183018.c` | -| 576 | func_8017F370 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017F370.c` | -| 577 | func_8017DBC0 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017DBC0.c` | -| 578 | func_80182000 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_80182000.c` | -| 579 | func_8017FEC8 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017FEC8.c` | -| 580 | func_8017D874 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017D874.c` | -| 581 | func_8017FACC | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017FACC.c` | -| 582 | func_8017F7F8 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017F7F8.c` | -| 583 | func_8017FB78 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_8017FB78.c` | -| 584 | func_80181A40 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_80181A40.c` | -| 585 | func_801800D4 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_801800D4.c` | -| 586 | func_80182E1C | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_80182E1C.c` | -| 587 | func_8017EEB0 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_8017EEB0.c` | -| 588 | func_8017F8E0 | None | | None | near | 34 | residual: 34 mismatch | `.run/backlog_drafts/func_8017F8E0.c` | -| 589 | func_8017E740 | None | | None | near | 34 | residual: 34 mismatch | `.run/backlog_drafts/func_8017E740.c` | -| 590 | func_80183834 | 1 | STRUCT | 135 | near | 35 | STRUCT: 35 mismatch | `.run/backlog_drafts/func_80183834.c` | -| 591 | func_8017D804 | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017D804.c` | -| 592 | func_8017DA0C | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017DA0C.c` | -| 593 | func_80180030 | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_80180030.c` | -| 594 | func_8017E038 | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017E038.c` | -| 595 | func_8017E32C | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017E32C.c` | -| 596 | func_80181090 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_80181090.c` | -| 597 | func_8017EC78 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017EC78.c` | -| 598 | func_8017E79C | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017E79C.c` | -| 599 | func_80182A08 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_80182A08.c` | -| 600 | func_8017F0E8 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017F0E8.c` | -| 601 | func_8017D294 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017D294.c` | -| 602 | func_80180F08 | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_80180F08.c` | -| 603 | func_8017EB5C | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_8017EB5C.c` | -| 604 | func_8017D29C | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_8017D29C.c` | -| 605 | func_8017E230 | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_8017E230.c` | -| 606 | func_8017DA00 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017DA00.c` | -| 607 | func_8017E6FC | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017E6FC.c` | -| 608 | func_8017FE08 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017FE08.c` | -| 609 | func_8017D80C | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017D80C.c` | -| 610 | func_8018263C | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8018263C.c` | -| 611 | func_80186FA8 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_80186FA8.c` | -| 612 | func_80180A38 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_80180A38.c` | -| 613 | func_8017D740 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017D740.c` | -| 614 | func_8017DD44 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017DD44.c` | -| 615 | func_8017E840 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017E840.c` | -| 616 | func_8017E014 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017E014.c` | -| 617 | func_8017EC70 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017EC70.c` | -| 618 | func_80180C2C | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_80180C2C.c` | -| 619 | func_8017F724 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017F724.c` | -| 620 | func_8018ACD4 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8018ACD4.c` | -| 621 | func_8018308C | 1 | STRUCT | 166 | near | 40 | STRUCT: 40 mismatch | `.run/backlog_drafts/func_8018308C.c` | -| 622 | func_8017ED80 | None | | None | near | 40 | residual: 40 mismatch | `.run/backlog_drafts/func_8017ED80.c` | -| 623 | func_80180850 | None | | None | near | 40 | residual: 40 mismatch | `.run/backlog_drafts/func_80180850.c` | -| 624 | func_80181438 | None | | None | near | 40 | residual: 40 mismatch | `.run/backlog_drafts/func_80181438.c` | -| 625 | func_8017D0BC | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017D0BC.c` | -| 626 | func_8017E94C | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017E94C.c` | -| 627 | func_8017E170 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017E170.c` | -| 628 | func_8018043C | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8018043C.c` | -| 629 | func_80183364 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_80183364.c` | -| 630 | func_801824F0 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_801824F0.c` | -| 631 | func_8017F4A0 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017F4A0.c` | -| 632 | func_80183F4C | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_80183F4C.c` | -| 633 | func_80186044 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_80186044.c` | -| 634 | func_80180010 | None | | None | near | 42 | residual: 42 mismatch | `.run/backlog_drafts/func_80180010.c` | -| 635 | func_8017E824 | None | | None | near | 42 | residual: 42 mismatch | `.run/backlog_drafts/func_8017E824.c` | -| 636 | func_80183598 | None | | None | near | 42 | residual: 42 mismatch | `.run/backlog_drafts/func_80183598.c` | -| 637 | func_8017ECF4 | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8017ECF4.c` | -| 638 | func_8018118C | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8018118C.c` | -| 639 | func_8018FB8C | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8018FB8C.c` | -| 640 | func_8017D96C | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8017D96C.c` | -| 641 | func_801812FC | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_801812FC.c` | -| 642 | func_80186B08 | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_80186B08.c` | -| 643 | func_8017E7D0 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_8017E7D0.c` | -| 644 | func_8017D01C | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_8017D01C.c` | -| 645 | func_8017E380 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_8017E380.c` | -| 646 | func_80180A88 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_80180A88.c` | -| 647 | func_80189DB4 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_80189DB4.c` | -| 648 | func_8018001C | None | | None | near | 46 | residual: 46 mismatch | `.run/backlog_drafts/func_8018001C.c` | -| 649 | func_8017F2A0 | None | | None | near | 46 | residual: 46 mismatch | `.run/backlog_drafts/func_8017F2A0.c` | -| 650 | func_80188BEC | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_80188BEC.c` | -| 651 | func_801804DC | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_801804DC.c` | -| 652 | func_801808D8 | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_801808D8.c` | -| 653 | func_8017E8D0 | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_8017E8D0.c` | -| 654 | func_801805DC | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_801805DC.c` | -| 655 | func_8017F84C | None | | None | near | 48 | residual: 48 mismatch | `.run/backlog_drafts/func_8017F84C.c` | -| 656 | func_8017FCF0 | None | | None | near | 48 | residual: 48 mismatch | `.run/backlog_drafts/func_8017FCF0.c` | -| 657 | func_8017D6F0 | None | | None | near | 49 | residual: 49 mismatch | `.run/backlog_drafts/func_8017D6F0.c` | -| 658 | func_8017DF40 | None | | None | near | 49 | residual: 49 mismatch | `.run/backlog_drafts/func_8017DF40.c` | -| 659 | func_801845EC | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_801845EC.c` | -| 660 | func_8017F4C4 | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_8017F4C4.c` | -| 661 | func_8017DE74 | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_8017DE74.c` | -| 662 | func_80183D48 | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_80183D48.c` | -| 663 | func_80181124 | None | | None | near | 52 | residual: 52 mismatch | `.run/backlog_drafts/func_80181124.c` | -| 664 | func_8017FB48 | None | | None | near | 52 | residual: 52 mismatch | `.run/backlog_drafts/func_8017FB48.c` | -| 665 | func_8018592C | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8018592C.c` | -| 666 | func_8018CFF4 | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8018CFF4.c` | -| 667 | func_8017DB6C | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8017DB6C.c` | -| 668 | func_8018048C | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8018048C.c` | -| 669 | func_8018465C | None | | None | near | 54 | residual: 54 mismatch | `.run/backlog_drafts/func_8018465C.c` | -| 670 | func_80180B7C | None | | None | near | 54 | residual: 54 mismatch | `.run/backlog_drafts/func_80180B7C.c` | -| 671 | func_8017FE54 | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_8017FE54.c` | -| 672 | func_801802BC | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_801802BC.c` | -| 673 | func_80182030 | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_80182030.c` | -| 674 | func_80180204 | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_80180204.c` | -| 675 | func_80181DEC | None | | None | near | 57 | residual: 57 mismatch | `.run/backlog_drafts/func_80181DEC.c` | -| 676 | func_8017E524 | None | | None | near | 57 | residual: 57 mismatch | `.run/backlog_drafts/func_8017E524.c` | -| 677 | func_8017ECB0 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017ECB0.c` | -| 678 | func_801898C8 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_801898C8.c` | -| 679 | func_80184920 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_80184920.c` | -| 680 | func_80182EA0 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_80182EA0.c` | -| 681 | func_8017F1C4 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017F1C4.c` | -| 682 | func_80181A5C | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_80181A5C.c` | -| 683 | func_8017D544 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017D544.c` | -| 684 | func_8017EA2C | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017EA2C.c` | -| 685 | func_80183624 | None | | None | near | 59 | residual: 59 mismatch | `.run/backlog_drafts/func_80183624.c` | -| 686 | func_80180B50 | None | | None | near | 59 | residual: 59 mismatch | `.run/backlog_drafts/func_80180B50.c` | -| 687 | func_8018567C | None | | None | near | 59 | residual: 59 mismatch | `.run/backlog_drafts/func_8018567C.c` | -| 688 | func_8017EEE0 | None | | None | near | 62 | residual: 62 mismatch | `.run/backlog_drafts/func_8017EEE0.c` | -| 689 | func_80188204 | None | | None | near | 62 | residual: 62 mismatch | `.run/backlog_drafts/func_80188204.c` | -| 690 | func_8017F25C | None | | None | near | 62 | residual: 62 mismatch | `.run/backlog_drafts/func_8017F25C.c` | -| 691 | func_8017EB74 | None | | None | near | 63 | residual: 63 mismatch | `.run/backlog_drafts/func_8017EB74.c` | -| 692 | func_8017E798 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017E798.c` | -| 693 | func_8017D610 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017D610.c` | -| 694 | func_8017CD10 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017CD10.c` | -| 695 | func_8017F1A0 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017F1A0.c` | -| 696 | func_8017D928 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017D928.c` | -| 697 | func_801865EC | 1 | WAVE | 125 | near | 65 | WAVE: 65 mismatch | `.run/backlog_drafts/func_801865EC.c` | -| 698 | func_8018656C | None | | None | near | 65 | residual: 65 mismatch | `.run/backlog_drafts/func_8018656C.c` | -| 699 | func_80185B5C | None | | None | near | 67 | residual: 67 mismatch | `.run/backlog_drafts/func_80185B5C.c` | -| 700 | func_8017E910 | None | | None | near | 68 | residual: 68 mismatch | `.run/backlog_drafts/func_8017E910.c` | -| 701 | func_80182378 | None | | None | near | 69 | residual: 69 mismatch | `.run/backlog_drafts/func_80182378.c` | -| 702 | func_80180224 | None | | None | near | 71 | residual: 71 mismatch | `.run/backlog_drafts/func_80180224.c` | -| 703 | func_80184238 | None | | None | near | 72 | residual: 72 mismatch | `.run/backlog_drafts/func_80184238.c` | -| 704 | func_801866B0 | None | | None | near | 72 | residual: 72 mismatch | `.run/backlog_drafts/func_801866B0.c` | -| 705 | func_8017D9E4 | None | | None | near | 73 | residual: 73 mismatch | `.run/backlog_drafts/func_8017D9E4.c` | -| 706 | func_80181344 | None | | None | near | 73 | residual: 73 mismatch | `.run/backlog_drafts/func_80181344.c` | -| 707 | func_80189B3C | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_80189B3C.c` | -| 708 | func_80182B90 | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_80182B90.c` | -| 709 | func_8018165C | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_8018165C.c` | -| 710 | func_8017F468 | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_8017F468.c` | -| 711 | func_801457A4 | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_801457A4.c` | -| 712 | func_8017DAB4 | None | | None | near | 75 | residual: 75 mismatch | `.run/backlog_drafts/func_8017DAB4.c` | -| 713 | func_80181500 | None | | None | near | 75 | residual: 75 mismatch | `.run/backlog_drafts/func_80181500.c` | -| 714 | func_801814A8 | None | | None | near | 76 | residual: 76 mismatch | `.run/backlog_drafts/func_801814A8.c` | -| 715 | func_8017E81C | None | | None | near | 76 | residual: 76 mismatch | `.run/backlog_drafts/func_8017E81C.c` | -| 716 | func_8018474C | None | | None | near | 76 | residual: 76 mismatch | `.run/backlog_drafts/func_8018474C.c` | -| 717 | func_80184DDC | None | | None | near | 77 | residual: 77 mismatch | `.run/backlog_drafts/func_80184DDC.c` | -| 718 | func_8017E2F4 | None | | None | near | 77 | residual: 77 mismatch | `.run/backlog_drafts/func_8017E2F4.c` | -| 719 | func_8017EDBC | None | | None | near | 78 | residual: 78 mismatch | `.run/backlog_drafts/func_8017EDBC.c` | -| 720 | func_8017E5F0 | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_8017E5F0.c` | -| 721 | func_801815AC | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_801815AC.c` | -| 722 | func_8017D54C | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_8017D54C.c` | -| 723 | func_80181260 | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_80181260.c` | -| 724 | func_801805D0 | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_801805D0.c` | -| 725 | func_8017F290 | 1 | regalloc-order | 86 | near | 81 | none — MATCH. Two levers: (1) hold &D_801270CC in a `int *state` local so its | `.run/backlog_drafts/func_8017F290.c` | -| 726 | func_80181068 | None | | None | near | 81 | residual: 81 mismatch | `.run/backlog_drafts/func_80181068.c` | -| 727 | func_80184E00 | None | | None | near | 82 | residual: 82 mismatch | `.run/backlog_drafts/func_80184E00.c` | -| 728 | func_8017EB88 | None | | None | near | 82 | residual: 82 mismatch | `.run/backlog_drafts/func_8017EB88.c` | -| 729 | func_8017F840 | None | | None | near | 82 | residual: 82 mismatch | `.run/backlog_drafts/func_8017F840.c` | -| 730 | func_8017DA9C | None | | None | near | 83 | residual: 83 mismatch | `.run/backlog_drafts/func_8017DA9C.c` | -| 731 | func_801829F0 | None | | None | near | 83 | residual: 83 mismatch | `.run/backlog_drafts/func_801829F0.c` | -| 732 | func_8017FBA4 | None | | None | near | 83 | residual: 83 mismatch | `.run/backlog_drafts/func_8017FBA4.c` | -| 733 | func_801848AC | None | | None | near | 84 | residual: 84 mismatch | `.run/backlog_drafts/func_801848AC.c` | -| 734 | func_801847FC | None | | None | near | 86 | residual: 86 mismatch | `.run/backlog_drafts/func_801847FC.c` | -| 735 | func_8018006C | None | | None | near | 86 | residual: 86 mismatch | `.run/backlog_drafts/func_8018006C.c` | -| 736 | func_8017DFD8 | None | | None | near | 87 | residual: 87 mismatch | `.run/backlog_drafts/func_8017DFD8.c` | -| 737 | func_80181F08 | 1 | STRUCT | 117 | near | 90 | STRUCT: 90 mismatch | `.run/backlog_drafts/func_80181F08.c` | -| 738 | func_801821D4 | None | | None | near | 90 | residual: 90 mismatch | `.run/backlog_drafts/func_801821D4.c` | -| 739 | func_8017F0A8 | None | | None | near | 90 | residual: 90 mismatch | `.run/backlog_drafts/func_8017F0A8.c` | -| 740 | func_8018AD3C | None | | None | near | 90 | residual: 90 mismatch | `.run/backlog_drafts/func_8018AD3C.c` | -| 741 | func_8017EDC0 | None | | None | near | 91 | residual: 91 mismatch | `.run/backlog_drafts/func_8017EDC0.c` | -| 742 | func_801807DC | None | | None | near | 92 | residual: 92 mismatch | `.run/backlog_drafts/func_801807DC.c` | -| 743 | func_80180170 | None | | None | near | 92 | residual: 92 mismatch | `.run/backlog_drafts/func_80180170.c` | -| 744 | func_8017D98C | 1 | plumbing | 31 | near | 93 | none — MATCH (expected): straight global stores + tail call; const 0x140 reused for two halves | `.run/backlog_drafts/func_8017D98C.c` | -| 745 | func_8017EFFC | None | | None | near | 93 | residual: 93 mismatch | `.run/backlog_drafts/func_8017EFFC.c` | -| 746 | func_8017D940 | None | | None | near | 94 | residual: 94 mismatch | `.run/backlog_drafts/func_8017D940.c` | -| 747 | func_8017DAB8 | None | | None | near | 97 | residual: 97 mismatch | `.run/backlog_drafts/func_8017DAB8.c` | -| 748 | func_80180040 | None | | None | near | 97 | residual: 97 mismatch | `.run/backlog_drafts/func_80180040.c` | -| 749 | func_8017FBE0 | None | | None | near | 97 | residual: 97 mismatch | `.run/backlog_drafts/func_8017FBE0.c` | -| 750 | func_8017DAEC | 1 | WAVE | 113 | near | 98 | WAVE: 98 mismatch | `.run/backlog_drafts/func_8017DAEC.c` | -| 751 | func_80182728 | None | | None | near | 98 | residual: 98 mismatch | `.run/backlog_drafts/func_80182728.c` | -| 752 | func_8017D808 | None | | None | near | 102 | residual: 102 mismatch | `.run/backlog_drafts/func_8017D808.c` | -| 753 | func_80182D10 | None | | None | near | 102 | residual: 102 mismatch | `.run/backlog_drafts/func_80182D10.c` | -| 754 | func_8017DC40 | None | | None | near | 104 | residual: 104 mismatch | `.run/backlog_drafts/func_8017DC40.c` | -| 755 | func_8017EFEC | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_8017EFEC.c` | -| 756 | func_80182BC8 | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_80182BC8.c` | -| 757 | func_8017F69C | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_8017F69C.c` | -| 758 | func_80184828 | None | | None | near | 109 | residual: 109 mismatch | `.run/backlog_drafts/func_80184828.c` | -| 759 | func_8017F3E4 | None | | None | near | 110 | residual: 110 mismatch | `.run/backlog_drafts/func_8017F3E4.c` | -| 760 | func_80181948 | 1 | STRUCT | 132 | near | 111 | STRUCT: 111 mismatch | `.run/backlog_drafts/func_80181948.c` | -| 761 | func_8017DAF4 | None | | None | near | 111 | residual: 111 mismatch | `.run/backlog_drafts/func_8017DAF4.c` | -| 762 | func_8017FE9C | None | | None | near | 111 | residual: 111 mismatch | `.run/backlog_drafts/func_8017FE9C.c` | -| 763 | func_8017F768 | None | | None | near | 112 | residual: 112 mismatch | `.run/backlog_drafts/func_8017F768.c` | -| 764 | func_8017F3B8 | None | | None | near | 112 | residual: 112 mismatch | `.run/backlog_drafts/func_8017F3B8.c` | -| 765 | func_8017D508 | None | | None | near | 113 | residual: 113 mismatch | `.run/backlog_drafts/func_8017D508.c` | -| 766 | func_80180C90 | 1 | STRUCT | 160 | near | 116 | STRUCT: 116 mismatch | `.run/backlog_drafts/func_80180C90.c` | -| 767 | func_80181858 | None | | None | near | 117 | residual: 117 mismatch | `.run/backlog_drafts/func_80181858.c` | -| 768 | func_8017E8F8 | None | | None | near | 120 | residual: 120 mismatch | `.run/backlog_drafts/func_8017E8F8.c` | -| 769 | func_80184358 | None | | None | near | 121 | residual: 121 mismatch | `.run/backlog_drafts/func_80184358.c` | -| 770 | func_8017F074 | None | | None | near | 121 | residual: 121 mismatch | `.run/backlog_drafts/func_8017F074.c` | -| 771 | func_8017D890 | None | | None | near | 124 | residual: 124 mismatch | `.run/backlog_drafts/func_8017D890.c` | -| 772 | func_8017DECC | None | | None | near | 125 | residual: 125 mismatch | `.run/backlog_drafts/func_8017DECC.c` | -| 773 | func_80185020 | None | | None | near | 125 | residual: 125 mismatch | `.run/backlog_drafts/func_80185020.c` | -| 774 | func_801892CC | None | | None | near | 127 | residual: 127 mismatch | `.run/backlog_drafts/func_801892CC.c` | -| 775 | func_8017EB00 | None | | None | near | 127 | residual: 127 mismatch | `.run/backlog_drafts/func_8017EB00.c` | -| 776 | func_80185E68 | 1 | STRUCT | 132 | near | 131 | STRUCT: 131 mismatch | `.run/backlog_drafts/func_80185E68.c` | -| 777 | func_8017E378 | None | | None | near | 134 | residual: 134 mismatch | `.run/backlog_drafts/func_8017E378.c` | -| 778 | func_80186530 | None | | None | near | 139 | residual: 139 mismatch | `.run/backlog_drafts/func_80186530.c` | -| 779 | func_80186078 | 1 | WAVE | 174 | near | 141 | WAVE: 141 mismatch | `.run/backlog_drafts/func_80186078.c` | -| 780 | func_80184F08 | None | regalloc-order | None | near | 141 | none — MATCH (145/145 ins, match_one confirmed) | `.run/backlog_drafts/func_80184F08.c` | -| 781 | func_80185668 | None | | None | near | 142 | residual: 142 mismatch | `.run/backlog_drafts/func_80185668.c` | -| 782 | func_8017DB0C | None | | None | near | 142 | residual: 142 mismatch | `.run/backlog_drafts/func_8017DB0C.c` | -| 783 | func_80181984 | None | | None | near | 153 | residual: 153 mismatch | `.run/backlog_drafts/func_80181984.c` | -| 784 | func_8017E6EC | None | | None | near | 172 | residual: 172 mismatch | `.run/backlog_drafts/func_8017E6EC.c` | -| 785 | func_80181BE4 | 1 | STRUCT | 201 | near | 173 | STRUCT: 173 mismatch | `.run/backlog_drafts/func_80181BE4.c` | -| 786 | func_80184210 | None | | None | near | 176 | residual: 176 mismatch | `.run/backlog_drafts/func_80184210.c` | -| 787 | func_80180568 | None | | None | near | 185 | residual: 185 mismatch | `.run/backlog_drafts/func_80180568.c` | -| 788 | func_801809C4 | None | | None | near | 190 | residual: 190 mismatch | `.run/backlog_drafts/func_801809C4.c` | -| 789 | func_80183D84 | None | | None | near | 192 | residual: 192 mismatch | `.run/backlog_drafts/func_80183D84.c` | -| 790 | func_80183FEC | None | | None | near | 198 | residual: 198 mismatch | `.run/backlog_drafts/func_80183FEC.c` | -| 791 | func_801823B8 | None | | None | near | 204 | residual: 204 mismatch | `.run/backlog_drafts/func_801823B8.c` | -| 792 | func_801826C4 | None | | None | near | 207 | residual: 207 mismatch | `.run/backlog_drafts/func_801826C4.c` | -| 793 | func_8018C3F8 | None | | None | near | 236 | residual: 236 mismatch | `.run/backlog_drafts/func_8018C3F8.c` | -| 794 | func_8017FD14 | 1 | STRUCT | 249 | near | 240 | STRUCT: 240 mismatch | `.run/backlog_drafts/func_8017FD14.c` | -| 795 | func_8017E7D4 | None | | None | near | 241 | residual: 241 mismatch | `.run/backlog_drafts/func_8017E7D4.c` | -| 796 | func_80183BF8 | None | | None | near | 258 | residual: 258 mismatch | `.run/backlog_drafts/func_80183BF8.c` | -| 797 | func_8017EB30 | None | | None | near | 278 | residual: 278 mismatch | `.run/backlog_drafts/func_8017EB30.c` | -| 798 | func_801804A0 | None | | None | near | 280 | residual: 280 mismatch | `.run/backlog_drafts/func_801804A0.c` | -| 799 | func_80181670 | None | | None | near | 311 | residual: 311 mismatch | `.run/backlog_drafts/func_80181670.c` | -| 800 | func_80189540 | None | | None | near | 463 | residual: 463 mismatch | `.run/backlog_drafts/func_80189540.c` | -| 801 | func_80144B9C | None | | None | near | 728 | residual: 728 mismatch | `.run/backlog_drafts/func_80144B9C.c` | -| 802 | func_80128CFC | 1 | WAVE | 25 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80128CFC.c` | -| 803 | func_80185BA4 | 1 | WAVE | 177 | failed | | won't compile standalone (loose-typing / missing decl) | | -| 804 | func_80183324 | 1 | STRUCT | 324 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80183324.c` | -| 805 | func_8017D8DC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017D8DC.c` | -| 806 | func_8017FFEC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FFEC.c` | -| 807 | func_8017DC18 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DC18.c` | -| 808 | func_801853CC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801853CC.c` | -| 809 | func_80181894 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181894.c` | -| 810 | func_8018BFBC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018BFBC.c` | -| 811 | func_801807F4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801807F4.c` | -| 812 | func_8017FFC8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FFC8.c` | -| 813 | func_8017E99C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E99C.c` | -| 814 | func_80180294 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80180294.c` | -| 815 | func_8017E76C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E76C.c` | -| 816 | func_8017F29C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F29C.c` | -| 817 | func_8017F00C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F00C.c` | -| 818 | func_801802B0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801802B0.c` | -| 819 | func_8017DA1C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DA1C.c` | -| 820 | func_8017FFC4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FFC4.c` | -| 821 | func_8017E2F0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E2F0.c` | -| 822 | func_801841E4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801841E4.c` | -| 823 | func_80181738 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181738.c` | -| 824 | func_801873D8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801873D8.c` | -| 825 | func_80185628 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80185628.c` | -| 826 | func_80181A78 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181A78.c` | -| 827 | func_801805D4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801805D4.c` | -| 828 | func_8017EA1C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017EA1C.c` | -| 829 | func_8017F098 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F098.c` | -| 830 | func_801822CC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801822CC.c` | -| 831 | func_8017E3F4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E3F4.c` | -| 832 | func_800D1658 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_800D1658.c` | -| 833 | func_800D1984 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_800D1984.c` | -| 834 | func_800D24A0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_800D24A0.c` | -| 835 | func_8013DD68 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8013DD68.c` | -| 836 | func_80181164 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181164.c` | -| 837 | func_8012D664 | None | schedule | None | failed | | none — MATCH | `.run/backlog_drafts/func_8012D664.c` | -| 838 | func_80136C90 | None | struct | None | failed | | none — MATCH (28 ins). 10-byte 1-aligned struct copy (S10{char s[10]}) from global D_801A5A7C into a stack buffer, then ((void(*)(int, void *, int, int, int, int))func_8001534C)(0,&buf,0x78,0x10,0,0). gcc emits the block move as 2 unaligned words (lwl/lwr+swl/swr) + 2 bytes (lb/sb). | `.run/backlog_drafts/func_80136C90.c` | -| 839 | func_80145CEC | None | struct | None | failed | | 2 residuals — (1) target RELOADS global ptr ((s32 *)&D_80126B78) before each of its 5 field accesses (f28/f18/f1a/f1c/f2c); gcc-2.7.2 CSEs the single pointer load in every clean-C form I tried (int-cast, (s8*)/(s32) M2C_FIELD, struct*), keeping ONE load. volatile forces reloads but hoists them + leaves delay-slot nops the target fills (target is NOT volatile). (2) frame 0x20 not 0x18: target reserves an unused 8-byte stack local @0x10 (address-taken local — reproduced, but every code-free escape optimizes away and a visible escape corrupts the ((int (*)(void))func_80145EE8)(0) arg). Structure/order/values/callees all match; only the alias-driven reload chain + the phantom frame local remain. Family exemplar (~130 overlays). | `.run/backlog_drafts/func_80145CEC.c` | -| 840 | func_8016BCC0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016BCC0.c` | -| 841 | func_8017DE58 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DE58.c` | -| 842 | func_80181A70 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181A70.c` | -| 843 | func_8017E7B4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E7B4.c` | -| 844 | func_8012E778 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8012E778.c` | -| 845 | func_8013C360 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8013C360.c` | -| 846 | func_80149954 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80149954.c` | -| 847 | func_8014CBE8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014CBE8.c` | -| 848 | func_8015B858 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8015B858.c` | -| 849 | func_80161124 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80161124.c` | -| 850 | func_8016829C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016829C.c` | -| 851 | func_801684B4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801684B4.c` | -| 852 | func_8016D848 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016D848.c` | -| 853 | func_8016D984 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016D984.c` | -| 854 | func_8016E728 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016E728.c` | -| 855 | func_8017A4AC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017A4AC.c` | +| 331 | func_801810A4 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801810A4.c` | +| 332 | func_801810D8 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801810D8.c` | +| 333 | func_80180554 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80180554.c` | +| 334 | func_80181E5C | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80181E5C.c` | +| 335 | func_80189DDC | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80189DDC.c` | +| 336 | func_8018ABE0 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8018ABE0.c` | +| 337 | func_80189A60 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80189A60.c` | +| 338 | func_801827C0 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801827C0.c` | +| 339 | func_80186A58 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80186A58.c` | +| 340 | func_8017F2BC | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8017F2BC.c` | +| 341 | func_8017F184 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8017F184.c` | +| 342 | func_80185F58 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80185F58.c` | +| 343 | func_8018A3C8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8018A3C8.c` | +| 344 | func_80180528 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80180528.c` | +| 345 | func_801818EC | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_801818EC.c` | +| 346 | func_8017DA3C | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017DA3C.c` | +| 347 | func_8017EDA8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017EDA8.c` | +| 348 | func_801816CC | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_801816CC.c` | +| 349 | func_8017D914 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017D914.c` | +| 350 | func_8017FD58 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017FD58.c` | +| 351 | func_8017F830 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017F830.c` | +| 352 | func_8018276C | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8018276C.c` | +| 353 | func_80183AF8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80183AF8.c` | +| 354 | func_80180C34 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80180C34.c` | +| 355 | func_8018BDA4 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8018BDA4.c` | +| 356 | func_8017C8E4 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017C8E4.c` | +| 357 | func_80186D30 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80186D30.c` | +| 358 | func_8017F0D8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017F0D8.c` | +| 359 | func_8017E358 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017E358.c` | +| 360 | func_8017E35C | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017E35C.c` | +| 361 | func_801811B4 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_801811B4.c` | +| 362 | func_8017CDBC | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017CDBC.c` | +| 363 | func_80180D10 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80180D10.c` | +| 364 | func_8018316C | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8018316C.c` | +| 365 | func_8017E808 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017E808.c` | +| 366 | func_80180654 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80180654.c` | +| 367 | func_80186DE8 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80186DE8.c` | +| 368 | func_801838EC | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801838EC.c` | +| 369 | func_801892C0 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801892C0.c` | +| 370 | func_801859E4 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801859E4.c` | +| 371 | func_80189504 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80189504.c` | +| 372 | func_8017C918 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017C918.c` | +| 373 | func_801813F0 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_801813F0.c` | +| 374 | func_80181F6C | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80181F6C.c` | +| 375 | func_8017EA04 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017EA04.c` | +| 376 | func_8017EBA8 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017EBA8.c` | +| 377 | func_80185404 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80185404.c` | +| 378 | func_8017D7C4 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017D7C4.c` | +| 379 | func_8017D974 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8017D974.c` | +| 380 | func_80180950 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_80180950.c` | +| 381 | func_8013BD34 | None | | None | near | 14 | residual: 14 mismatch | `.run/backlog_drafts/func_8013BD34.c` | +| 382 | func_80181784 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181784.c` | +| 383 | func_801803F4 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_801803F4.c` | +| 384 | func_8017E818 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E818.c` | +| 385 | func_80181B0C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181B0C.c` | +| 386 | func_8017F138 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F138.c` | +| 387 | func_8017E290 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E290.c` | +| 388 | func_80181A94 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181A94.c` | +| 389 | func_8017D1B4 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017D1B4.c` | +| 390 | func_8017D220 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017D220.c` | +| 391 | func_80181028 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181028.c` | +| 392 | func_8018533C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8018533C.c` | +| 393 | func_8017F268 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F268.c` | +| 394 | func_8017F120 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F120.c` | +| 395 | func_80185A68 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80185A68.c` | +| 396 | func_8017D49C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017D49C.c` | +| 397 | func_8017F5E0 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F5E0.c` | +| 398 | func_8017DFCC | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017DFCC.c` | +| 399 | func_80181C1C | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_80181C1C.c` | +| 400 | func_8017E9F4 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E9F4.c` | +| 401 | func_8017F3A8 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017F3A8.c` | +| 402 | func_8017E304 | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_8017E304.c` | +| 403 | func_8017E0F0 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017E0F0.c` | +| 404 | func_80182D78 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80182D78.c` | +| 405 | func_8017F920 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F920.c` | +| 406 | func_80187A8C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80187A8C.c` | +| 407 | func_8017F1F8 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F1F8.c` | +| 408 | func_8017EC84 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017EC84.c` | +| 409 | func_8017E9CC | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017E9CC.c` | +| 410 | func_8017EAE0 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017EAE0.c` | +| 411 | func_80186984 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80186984.c` | +| 412 | func_8017F414 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F414.c` | +| 413 | func_8017E090 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017E090.c` | +| 414 | func_801853F8 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_801853F8.c` | +| 415 | func_8017F20C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017F20C.c` | +| 416 | func_80182654 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_80182654.c` | +| 417 | func_8017CDE4 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017CDE4.c` | +| 418 | func_8017DFAC | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017DFAC.c` | +| 419 | func_8017EF1C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017EF1C.c` | +| 420 | func_8017EEF4 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017EEF4.c` | +| 421 | func_8017E950 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017E950.c` | +| 422 | func_8017CDD8 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017CDD8.c` | +| 423 | func_80180890 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80180890.c` | +| 424 | func_80180D74 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80180D74.c` | +| 425 | func_8017F568 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017F568.c` | +| 426 | func_80180D14 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80180D14.c` | +| 427 | func_80183C58 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_80183C58.c` | +| 428 | func_8013B7F4 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8013B7F4.c` | +| 429 | func_8018208C | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8018208C.c` | +| 430 | func_801877DC | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_801877DC.c` | +| 431 | func_80189630 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80189630.c` | +| 432 | func_80184630 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80184630.c` | +| 433 | func_8017E850 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017E850.c` | +| 434 | func_8017DCF4 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017DCF4.c` | +| 435 | func_8017D988 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017D988.c` | +| 436 | func_80182E38 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80182E38.c` | +| 437 | func_80180B54 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_80180B54.c` | +| 438 | func_8017D600 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017D600.c` | +| 439 | func_8017F6C4 | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8017F6C4.c` | +| 440 | func_8013B7AC | None | | None | near | 18 | residual: 18 mismatch | `.run/backlog_drafts/func_8013B7AC.c` | +| 441 | func_8017FFCC | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017FFCC.c` | +| 442 | func_801811F4 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_801811F4.c` | +| 443 | func_80180DB8 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80180DB8.c` | +| 444 | func_8017D184 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017D184.c` | +| 445 | func_8017F160 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017F160.c` | +| 446 | func_8017F4D0 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017F4D0.c` | +| 447 | func_8018033C | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8018033C.c` | +| 448 | func_80181138 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80181138.c` | +| 449 | func_8017E048 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017E048.c` | +| 450 | func_8017F3BC | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017F3BC.c` | +| 451 | func_801845B4 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_801845B4.c` | +| 452 | func_8017FF30 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_8017FF30.c` | +| 453 | func_80185288 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80185288.c` | +| 454 | func_8017E890 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017E890.c` | +| 455 | func_8018555C | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8018555C.c` | +| 456 | func_801826EC | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_801826EC.c` | +| 457 | func_8017DB00 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017DB00.c` | +| 458 | func_80181054 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_80181054.c` | +| 459 | func_8017D704 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017D704.c` | +| 460 | func_8017FA00 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017FA00.c` | +| 461 | func_8018B6F4 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8018B6F4.c` | +| 462 | func_8017EEC8 | None | | None | near | 20 | residual: 20 mismatch | `.run/backlog_drafts/func_8017EEC8.c` | +| 463 | func_8017C6B8 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017C6B8.c` | +| 464 | func_8017DB44 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017DB44.c` | +| 465 | func_80187050 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_80187050.c` | +| 466 | func_8017DD18 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017DD18.c` | +| 467 | func_8017D308 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017D308.c` | +| 468 | func_8017D8B0 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017D8B0.c` | +| 469 | func_8017F080 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017F080.c` | +| 470 | func_80180548 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_80180548.c` | +| 471 | func_8017DE78 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_8017DE78.c` | +| 472 | func_80185A18 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_80185A18.c` | +| 473 | func_8017FF2C | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017FF2C.c` | +| 474 | func_801803E0 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_801803E0.c` | +| 475 | func_8017D828 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017D828.c` | +| 476 | func_8017DC08 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017DC08.c` | +| 477 | func_80187C64 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_80187C64.c` | +| 478 | func_8017FA90 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017FA90.c` | +| 479 | func_8017F320 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017F320.c` | +| 480 | func_80181478 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_80181478.c` | +| 481 | func_801868E0 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_801868E0.c` | +| 482 | func_8018AB74 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8018AB74.c` | +| 483 | func_8017DE70 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8017DE70.c` | +| 484 | func_8018A640 | None | | None | near | 22 | residual: 22 mismatch | `.run/backlog_drafts/func_8018A640.c` | +| 485 | func_8017DC54 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017DC54.c` | +| 486 | func_8017F480 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017F480.c` | +| 487 | func_8017EF7C | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017EF7C.c` | +| 488 | func_80182FF0 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_80182FF0.c` | +| 489 | func_80182EE8 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_80182EE8.c` | +| 490 | func_8017E240 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017E240.c` | +| 491 | func_8017CE94 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017CE94.c` | +| 492 | func_8017D2A4 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017D2A4.c` | +| 493 | func_8017FAC8 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017FAC8.c` | +| 494 | func_80181F60 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_80181F60.c` | +| 495 | func_8018381C | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8018381C.c` | +| 496 | func_8017F500 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017F500.c` | +| 497 | func_8017D1E0 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017D1E0.c` | +| 498 | func_8017DDBC | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017DDBC.c` | +| 499 | func_8017F1BC | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017F1BC.c` | +| 500 | func_8017EFB0 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017EFB0.c` | +| 501 | func_80182708 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_80182708.c` | +| 502 | func_8017F8A8 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017F8A8.c` | +| 503 | func_8017EBEC | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8017EBEC.c` | +| 504 | func_80184DE8 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_80184DE8.c` | +| 505 | func_8018333C | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8018333C.c` | +| 506 | func_8018056C | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_8018056C.c` | +| 507 | func_80180EB8 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_80180EB8.c` | +| 508 | func_801856F0 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_801856F0.c` | +| 509 | func_8018DFDC | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8018DFDC.c` | +| 510 | func_801827A8 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_801827A8.c` | +| 511 | func_8017CFC4 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017CFC4.c` | +| 512 | func_8017D7A4 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017D7A4.c` | +| 513 | func_80182514 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_80182514.c` | +| 514 | func_8018545C | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8018545C.c` | +| 515 | func_80181134 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_80181134.c` | +| 516 | func_8017FE10 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017FE10.c` | +| 517 | func_80182E34 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_80182E34.c` | +| 518 | func_8017D864 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017D864.c` | +| 519 | func_8017DB70 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_8017DB70.c` | +| 520 | func_8017FB68 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017FB68.c` | +| 521 | func_8018ACB4 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8018ACB4.c` | +| 522 | func_8017EBF4 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017EBF4.c` | +| 523 | func_80180A5C | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_80180A5C.c` | +| 524 | func_801830EC | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_801830EC.c` | +| 525 | func_801804F4 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_801804F4.c` | +| 526 | func_8017E6C0 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017E6C0.c` | +| 527 | func_8017F024 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_8017F024.c` | +| 528 | func_80181254 | None | | None | near | 26 | residual: 26 mismatch | `.run/backlog_drafts/func_80181254.c` | +| 529 | func_80184A1C | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80184A1C.c` | +| 530 | func_80184430 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80184430.c` | +| 531 | func_80185934 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80185934.c` | +| 532 | func_80180D28 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_80180D28.c` | +| 533 | func_8017E1F4 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_8017E1F4.c` | +| 534 | func_80182C24 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80182C24.c` | +| 535 | func_8017DAD0 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_8017DAD0.c` | +| 536 | func_80183C4C | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80183C4C.c` | +| 537 | func_80181300 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80181300.c` | +| 538 | func_8017E218 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_8017E218.c` | +| 539 | func_8017F8AC | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_8017F8AC.c` | +| 540 | func_80180E98 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80180E98.c` | +| 541 | func_80188650 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80188650.c` | +| 542 | func_80183A18 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80183A18.c` | +| 543 | func_80183A24 | None | | None | near | 28 | residual: 28 mismatch | `.run/backlog_drafts/func_80183A24.c` | +| 544 | func_80180CA0 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80180CA0.c` | +| 545 | func_8017ED0C | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8017ED0C.c` | +| 546 | func_8017FB4C | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8017FB4C.c` | +| 547 | func_801840C0 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_801840C0.c` | +| 548 | func_8017F344 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8017F344.c` | +| 549 | func_80180214 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80180214.c` | +| 550 | func_801803DC | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_801803DC.c` | +| 551 | func_80181304 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80181304.c` | +| 552 | func_8018B9DC | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_8018B9DC.c` | +| 553 | func_80180840 | None | | None | near | 29 | residual: 29 mismatch | `.run/backlog_drafts/func_80180840.c` | +| 554 | func_80182E08 | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_80182E08.c` | +| 555 | func_8017F750 | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_8017F750.c` | +| 556 | func_8018133C | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_8018133C.c` | +| 557 | func_8017D894 | None | | None | near | 30 | residual: 30 mismatch | `.run/backlog_drafts/func_8017D894.c` | +| 558 | func_80182268 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80182268.c` | +| 559 | func_8018337C | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8018337C.c` | +| 560 | func_801800F4 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_801800F4.c` | +| 561 | func_80181990 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80181990.c` | +| 562 | func_8017D8C8 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017D8C8.c` | +| 563 | func_80184AA8 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80184AA8.c` | +| 564 | func_8017E9EC | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017E9EC.c` | +| 565 | func_80182D18 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_80182D18.c` | +| 566 | func_8017D524 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017D524.c` | +| 567 | func_8017D784 | None | | None | near | 31 | residual: 31 mismatch | `.run/backlog_drafts/func_8017D784.c` | +| 568 | func_801856E4 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_801856E4.c` | +| 569 | func_8017EEFC | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017EEFC.c` | +| 570 | func_8017FC50 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017FC50.c` | +| 571 | func_8017D554 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017D554.c` | +| 572 | func_80183018 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_80183018.c` | +| 573 | func_8017F370 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017F370.c` | +| 574 | func_8017DBC0 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017DBC0.c` | +| 575 | func_80182000 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_80182000.c` | +| 576 | func_8017FEC8 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017FEC8.c` | +| 577 | func_8017D874 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017D874.c` | +| 578 | func_8017FACC | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017FACC.c` | +| 579 | func_8017F7F8 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_8017F7F8.c` | +| 580 | func_8017FB78 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_8017FB78.c` | +| 581 | func_80181A40 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_80181A40.c` | +| 582 | func_801800D4 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_801800D4.c` | +| 583 | func_80182E1C | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_80182E1C.c` | +| 584 | func_8017EEB0 | None | | None | near | 33 | residual: 33 mismatch | `.run/backlog_drafts/func_8017EEB0.c` | +| 585 | func_8017F8E0 | None | | None | near | 34 | residual: 34 mismatch | `.run/backlog_drafts/func_8017F8E0.c` | +| 586 | func_8017E740 | None | | None | near | 34 | residual: 34 mismatch | `.run/backlog_drafts/func_8017E740.c` | +| 587 | func_80183834 | 1 | STRUCT | 135 | near | 35 | STRUCT: 35 mismatch | `.run/backlog_drafts/func_80183834.c` | +| 588 | func_8017D804 | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017D804.c` | +| 589 | func_8017DA0C | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017DA0C.c` | +| 590 | func_80180030 | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_80180030.c` | +| 591 | func_8017E038 | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017E038.c` | +| 592 | func_8017E32C | None | | None | near | 35 | residual: 35 mismatch | `.run/backlog_drafts/func_8017E32C.c` | +| 593 | func_80181090 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_80181090.c` | +| 594 | func_8017EC78 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017EC78.c` | +| 595 | func_8017E79C | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017E79C.c` | +| 596 | func_80182A08 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_80182A08.c` | +| 597 | func_8017F0E8 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017F0E8.c` | +| 598 | func_8017D294 | None | | None | near | 36 | residual: 36 mismatch | `.run/backlog_drafts/func_8017D294.c` | +| 599 | func_80180F08 | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_80180F08.c` | +| 600 | func_8017EB5C | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_8017EB5C.c` | +| 601 | func_8017D29C | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_8017D29C.c` | +| 602 | func_8017E230 | None | | None | near | 37 | residual: 37 mismatch | `.run/backlog_drafts/func_8017E230.c` | +| 603 | func_8017DA00 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017DA00.c` | +| 604 | func_8017E6FC | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017E6FC.c` | +| 605 | func_8017FE08 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017FE08.c` | +| 606 | func_8017D80C | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017D80C.c` | +| 607 | func_8018263C | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8018263C.c` | +| 608 | func_80186FA8 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_80186FA8.c` | +| 609 | func_80180A38 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_80180A38.c` | +| 610 | func_8017D740 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017D740.c` | +| 611 | func_8017DD44 | None | | None | near | 38 | residual: 38 mismatch | `.run/backlog_drafts/func_8017DD44.c` | +| 612 | func_8017E840 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017E840.c` | +| 613 | func_8017E014 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017E014.c` | +| 614 | func_8017EC70 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017EC70.c` | +| 615 | func_80180C2C | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_80180C2C.c` | +| 616 | func_8017F724 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8017F724.c` | +| 617 | func_8018ACD4 | None | | None | near | 39 | residual: 39 mismatch | `.run/backlog_drafts/func_8018ACD4.c` | +| 618 | func_8018308C | 1 | STRUCT | 166 | near | 40 | STRUCT: 40 mismatch | `.run/backlog_drafts/func_8018308C.c` | +| 619 | func_8017ED80 | None | | None | near | 40 | residual: 40 mismatch | `.run/backlog_drafts/func_8017ED80.c` | +| 620 | func_80180850 | None | | None | near | 40 | residual: 40 mismatch | `.run/backlog_drafts/func_80180850.c` | +| 621 | func_80181438 | None | | None | near | 40 | residual: 40 mismatch | `.run/backlog_drafts/func_80181438.c` | +| 622 | func_8017D0BC | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017D0BC.c` | +| 623 | func_8017E94C | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017E94C.c` | +| 624 | func_8017E170 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017E170.c` | +| 625 | func_8018043C | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8018043C.c` | +| 626 | func_80183364 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_80183364.c` | +| 627 | func_801824F0 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_801824F0.c` | +| 628 | func_8017F4A0 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_8017F4A0.c` | +| 629 | func_80183F4C | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_80183F4C.c` | +| 630 | func_80186044 | None | | None | near | 41 | residual: 41 mismatch | `.run/backlog_drafts/func_80186044.c` | +| 631 | func_80180010 | None | | None | near | 42 | residual: 42 mismatch | `.run/backlog_drafts/func_80180010.c` | +| 632 | func_8017E824 | None | | None | near | 42 | residual: 42 mismatch | `.run/backlog_drafts/func_8017E824.c` | +| 633 | func_80183598 | None | | None | near | 42 | residual: 42 mismatch | `.run/backlog_drafts/func_80183598.c` | +| 634 | func_8017ECF4 | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8017ECF4.c` | +| 635 | func_8018118C | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8018118C.c` | +| 636 | func_8018FB8C | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8018FB8C.c` | +| 637 | func_8017D96C | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_8017D96C.c` | +| 638 | func_801812FC | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_801812FC.c` | +| 639 | func_80186B08 | None | | None | near | 43 | residual: 43 mismatch | `.run/backlog_drafts/func_80186B08.c` | +| 640 | func_8017E7D0 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_8017E7D0.c` | +| 641 | func_8017D01C | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_8017D01C.c` | +| 642 | func_8017E380 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_8017E380.c` | +| 643 | func_80180A88 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_80180A88.c` | +| 644 | func_80189DB4 | None | | None | near | 45 | residual: 45 mismatch | `.run/backlog_drafts/func_80189DB4.c` | +| 645 | func_8018001C | None | | None | near | 46 | residual: 46 mismatch | `.run/backlog_drafts/func_8018001C.c` | +| 646 | func_8017F2A0 | None | | None | near | 46 | residual: 46 mismatch | `.run/backlog_drafts/func_8017F2A0.c` | +| 647 | func_80188BEC | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_80188BEC.c` | +| 648 | func_801804DC | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_801804DC.c` | +| 649 | func_801808D8 | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_801808D8.c` | +| 650 | func_8017E8D0 | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_8017E8D0.c` | +| 651 | func_801805DC | None | | None | near | 47 | residual: 47 mismatch | `.run/backlog_drafts/func_801805DC.c` | +| 652 | func_8017F84C | None | | None | near | 48 | residual: 48 mismatch | `.run/backlog_drafts/func_8017F84C.c` | +| 653 | func_8017FCF0 | None | | None | near | 48 | residual: 48 mismatch | `.run/backlog_drafts/func_8017FCF0.c` | +| 654 | func_8017D6F0 | None | | None | near | 49 | residual: 49 mismatch | `.run/backlog_drafts/func_8017D6F0.c` | +| 655 | func_8017DF40 | None | | None | near | 49 | residual: 49 mismatch | `.run/backlog_drafts/func_8017DF40.c` | +| 656 | func_801845EC | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_801845EC.c` | +| 657 | func_8017F4C4 | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_8017F4C4.c` | +| 658 | func_8017DE74 | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_8017DE74.c` | +| 659 | func_80183D48 | None | | None | near | 50 | residual: 50 mismatch | `.run/backlog_drafts/func_80183D48.c` | +| 660 | func_80181124 | None | | None | near | 52 | residual: 52 mismatch | `.run/backlog_drafts/func_80181124.c` | +| 661 | func_8017FB48 | None | | None | near | 52 | residual: 52 mismatch | `.run/backlog_drafts/func_8017FB48.c` | +| 662 | func_8018592C | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8018592C.c` | +| 663 | func_8018CFF4 | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8018CFF4.c` | +| 664 | func_8017DB6C | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8017DB6C.c` | +| 665 | func_8018048C | None | | None | near | 53 | residual: 53 mismatch | `.run/backlog_drafts/func_8018048C.c` | +| 666 | func_8018465C | None | | None | near | 54 | residual: 54 mismatch | `.run/backlog_drafts/func_8018465C.c` | +| 667 | func_80180B7C | None | | None | near | 54 | residual: 54 mismatch | `.run/backlog_drafts/func_80180B7C.c` | +| 668 | func_8017FE54 | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_8017FE54.c` | +| 669 | func_801802BC | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_801802BC.c` | +| 670 | func_80182030 | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_80182030.c` | +| 671 | func_80180204 | None | | None | near | 55 | residual: 55 mismatch | `.run/backlog_drafts/func_80180204.c` | +| 672 | func_80181DEC | None | | None | near | 57 | residual: 57 mismatch | `.run/backlog_drafts/func_80181DEC.c` | +| 673 | func_8017E524 | None | | None | near | 57 | residual: 57 mismatch | `.run/backlog_drafts/func_8017E524.c` | +| 674 | func_8017ECB0 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017ECB0.c` | +| 675 | func_801898C8 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_801898C8.c` | +| 676 | func_80184920 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_80184920.c` | +| 677 | func_80182EA0 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_80182EA0.c` | +| 678 | func_8017F1C4 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017F1C4.c` | +| 679 | func_80181A5C | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_80181A5C.c` | +| 680 | func_8017D544 | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017D544.c` | +| 681 | func_8017EA2C | None | | None | near | 58 | residual: 58 mismatch | `.run/backlog_drafts/func_8017EA2C.c` | +| 682 | func_80183624 | None | | None | near | 59 | residual: 59 mismatch | `.run/backlog_drafts/func_80183624.c` | +| 683 | func_80180B50 | None | | None | near | 59 | residual: 59 mismatch | `.run/backlog_drafts/func_80180B50.c` | +| 684 | func_8018567C | None | | None | near | 59 | residual: 59 mismatch | `.run/backlog_drafts/func_8018567C.c` | +| 685 | func_8017EEE0 | None | | None | near | 62 | residual: 62 mismatch | `.run/backlog_drafts/func_8017EEE0.c` | +| 686 | func_80188204 | None | | None | near | 62 | residual: 62 mismatch | `.run/backlog_drafts/func_80188204.c` | +| 687 | func_8017F25C | None | | None | near | 62 | residual: 62 mismatch | `.run/backlog_drafts/func_8017F25C.c` | +| 688 | func_8017EB74 | None | | None | near | 63 | residual: 63 mismatch | `.run/backlog_drafts/func_8017EB74.c` | +| 689 | func_8017E798 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017E798.c` | +| 690 | func_8017D610 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017D610.c` | +| 691 | func_8017CD10 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017CD10.c` | +| 692 | func_8017F1A0 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017F1A0.c` | +| 693 | func_8017D928 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017D928.c` | +| 694 | func_801865EC | 1 | WAVE | 125 | near | 65 | WAVE: 65 mismatch | `.run/backlog_drafts/func_801865EC.c` | +| 695 | func_8018656C | None | | None | near | 65 | residual: 65 mismatch | `.run/backlog_drafts/func_8018656C.c` | +| 696 | func_80185B5C | None | | None | near | 67 | residual: 67 mismatch | `.run/backlog_drafts/func_80185B5C.c` | +| 697 | func_8017E910 | None | | None | near | 68 | residual: 68 mismatch | `.run/backlog_drafts/func_8017E910.c` | +| 698 | func_80182378 | None | | None | near | 69 | residual: 69 mismatch | `.run/backlog_drafts/func_80182378.c` | +| 699 | func_80180224 | None | | None | near | 71 | residual: 71 mismatch | `.run/backlog_drafts/func_80180224.c` | +| 700 | func_80184238 | None | | None | near | 72 | residual: 72 mismatch | `.run/backlog_drafts/func_80184238.c` | +| 701 | func_801866B0 | None | | None | near | 72 | residual: 72 mismatch | `.run/backlog_drafts/func_801866B0.c` | +| 702 | func_8017D9E4 | None | | None | near | 73 | residual: 73 mismatch | `.run/backlog_drafts/func_8017D9E4.c` | +| 703 | func_80181344 | None | | None | near | 73 | residual: 73 mismatch | `.run/backlog_drafts/func_80181344.c` | +| 704 | func_80189B3C | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_80189B3C.c` | +| 705 | func_80182B90 | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_80182B90.c` | +| 706 | func_8018165C | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_8018165C.c` | +| 707 | func_8017F468 | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_8017F468.c` | +| 708 | func_801457A4 | None | | None | near | 74 | residual: 74 mismatch | `.run/backlog_drafts/func_801457A4.c` | +| 709 | func_8017DAB4 | None | | None | near | 75 | residual: 75 mismatch | `.run/backlog_drafts/func_8017DAB4.c` | +| 710 | func_80181500 | None | | None | near | 75 | residual: 75 mismatch | `.run/backlog_drafts/func_80181500.c` | +| 711 | func_801814A8 | None | | None | near | 76 | residual: 76 mismatch | `.run/backlog_drafts/func_801814A8.c` | +| 712 | func_8017E81C | None | | None | near | 76 | residual: 76 mismatch | `.run/backlog_drafts/func_8017E81C.c` | +| 713 | func_8018474C | None | | None | near | 76 | residual: 76 mismatch | `.run/backlog_drafts/func_8018474C.c` | +| 714 | func_80184DDC | None | | None | near | 77 | residual: 77 mismatch | `.run/backlog_drafts/func_80184DDC.c` | +| 715 | func_8017E2F4 | None | | None | near | 77 | residual: 77 mismatch | `.run/backlog_drafts/func_8017E2F4.c` | +| 716 | func_8017EDBC | None | | None | near | 78 | residual: 78 mismatch | `.run/backlog_drafts/func_8017EDBC.c` | +| 717 | func_8017E5F0 | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_8017E5F0.c` | +| 718 | func_801815AC | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_801815AC.c` | +| 719 | func_8017D54C | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_8017D54C.c` | +| 720 | func_80181260 | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_80181260.c` | +| 721 | func_801805D0 | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_801805D0.c` | +| 722 | func_8017F290 | 1 | regalloc-order | 86 | near | 81 | none — MATCH. Two levers: (1) hold &D_801270CC in a `int *state` local so its | `.run/backlog_drafts/func_8017F290.c` | +| 723 | func_80181068 | None | | None | near | 81 | residual: 81 mismatch | `.run/backlog_drafts/func_80181068.c` | +| 724 | func_80184E00 | None | | None | near | 82 | residual: 82 mismatch | `.run/backlog_drafts/func_80184E00.c` | +| 725 | func_8017EB88 | None | | None | near | 82 | residual: 82 mismatch | `.run/backlog_drafts/func_8017EB88.c` | +| 726 | func_8017F840 | None | | None | near | 82 | residual: 82 mismatch | `.run/backlog_drafts/func_8017F840.c` | +| 727 | func_8017DA9C | None | | None | near | 83 | residual: 83 mismatch | `.run/backlog_drafts/func_8017DA9C.c` | +| 728 | func_801829F0 | None | | None | near | 83 | residual: 83 mismatch | `.run/backlog_drafts/func_801829F0.c` | +| 729 | func_8017FBA4 | None | | None | near | 83 | residual: 83 mismatch | `.run/backlog_drafts/func_8017FBA4.c` | +| 730 | func_801848AC | None | | None | near | 84 | residual: 84 mismatch | `.run/backlog_drafts/func_801848AC.c` | +| 731 | func_801847FC | None | | None | near | 86 | residual: 86 mismatch | `.run/backlog_drafts/func_801847FC.c` | +| 732 | func_8018006C | None | | None | near | 86 | residual: 86 mismatch | `.run/backlog_drafts/func_8018006C.c` | +| 733 | func_8017DFD8 | None | | None | near | 87 | residual: 87 mismatch | `.run/backlog_drafts/func_8017DFD8.c` | +| 734 | func_80181F08 | 1 | STRUCT | 117 | near | 90 | STRUCT: 90 mismatch | `.run/backlog_drafts/func_80181F08.c` | +| 735 | func_801821D4 | None | | None | near | 90 | residual: 90 mismatch | `.run/backlog_drafts/func_801821D4.c` | +| 736 | func_8017F0A8 | None | | None | near | 90 | residual: 90 mismatch | `.run/backlog_drafts/func_8017F0A8.c` | +| 737 | func_8018AD3C | None | | None | near | 90 | residual: 90 mismatch | `.run/backlog_drafts/func_8018AD3C.c` | +| 738 | func_8017EDC0 | None | | None | near | 91 | residual: 91 mismatch | `.run/backlog_drafts/func_8017EDC0.c` | +| 739 | func_801807DC | None | | None | near | 92 | residual: 92 mismatch | `.run/backlog_drafts/func_801807DC.c` | +| 740 | func_80180170 | None | | None | near | 92 | residual: 92 mismatch | `.run/backlog_drafts/func_80180170.c` | +| 741 | func_8017D98C | 1 | plumbing | 31 | near | 93 | none — MATCH (expected): straight global stores + tail call; const 0x140 reused for two halves | `.run/backlog_drafts/func_8017D98C.c` | +| 742 | func_8017EFFC | None | | None | near | 93 | residual: 93 mismatch | `.run/backlog_drafts/func_8017EFFC.c` | +| 743 | func_8017D940 | None | | None | near | 94 | residual: 94 mismatch | `.run/backlog_drafts/func_8017D940.c` | +| 744 | func_8017DAB8 | None | | None | near | 97 | residual: 97 mismatch | `.run/backlog_drafts/func_8017DAB8.c` | +| 745 | func_80180040 | None | | None | near | 97 | residual: 97 mismatch | `.run/backlog_drafts/func_80180040.c` | +| 746 | func_8017FBE0 | None | | None | near | 97 | residual: 97 mismatch | `.run/backlog_drafts/func_8017FBE0.c` | +| 747 | func_8017DAEC | 1 | WAVE | 113 | near | 98 | WAVE: 98 mismatch | `.run/backlog_drafts/func_8017DAEC.c` | +| 748 | func_80182728 | None | | None | near | 98 | residual: 98 mismatch | `.run/backlog_drafts/func_80182728.c` | +| 749 | func_8017D808 | None | | None | near | 102 | residual: 102 mismatch | `.run/backlog_drafts/func_8017D808.c` | +| 750 | func_80182D10 | None | | None | near | 102 | residual: 102 mismatch | `.run/backlog_drafts/func_80182D10.c` | +| 751 | func_8017DC40 | None | | None | near | 104 | residual: 104 mismatch | `.run/backlog_drafts/func_8017DC40.c` | +| 752 | func_8017EFEC | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_8017EFEC.c` | +| 753 | func_80182BC8 | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_80182BC8.c` | +| 754 | func_8017F69C | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_8017F69C.c` | +| 755 | func_80184828 | None | | None | near | 109 | residual: 109 mismatch | `.run/backlog_drafts/func_80184828.c` | +| 756 | func_8017F3E4 | None | | None | near | 110 | residual: 110 mismatch | `.run/backlog_drafts/func_8017F3E4.c` | +| 757 | func_80181948 | 1 | STRUCT | 132 | near | 111 | STRUCT: 111 mismatch | `.run/backlog_drafts/func_80181948.c` | +| 758 | func_8017DAF4 | None | | None | near | 111 | residual: 111 mismatch | `.run/backlog_drafts/func_8017DAF4.c` | +| 759 | func_8017FE9C | None | | None | near | 111 | residual: 111 mismatch | `.run/backlog_drafts/func_8017FE9C.c` | +| 760 | func_8017F768 | None | | None | near | 112 | residual: 112 mismatch | `.run/backlog_drafts/func_8017F768.c` | +| 761 | func_8017F3B8 | None | | None | near | 112 | residual: 112 mismatch | `.run/backlog_drafts/func_8017F3B8.c` | +| 762 | func_8017D508 | None | | None | near | 113 | residual: 113 mismatch | `.run/backlog_drafts/func_8017D508.c` | +| 763 | func_80180C90 | 1 | STRUCT | 160 | near | 116 | STRUCT: 116 mismatch | `.run/backlog_drafts/func_80180C90.c` | +| 764 | func_80181858 | None | | None | near | 117 | residual: 117 mismatch | `.run/backlog_drafts/func_80181858.c` | +| 765 | func_8017E8F8 | None | | None | near | 120 | residual: 120 mismatch | `.run/backlog_drafts/func_8017E8F8.c` | +| 766 | func_80184358 | None | | None | near | 121 | residual: 121 mismatch | `.run/backlog_drafts/func_80184358.c` | +| 767 | func_8017F074 | None | | None | near | 121 | residual: 121 mismatch | `.run/backlog_drafts/func_8017F074.c` | +| 768 | func_8017D890 | None | | None | near | 124 | residual: 124 mismatch | `.run/backlog_drafts/func_8017D890.c` | +| 769 | func_8017DECC | None | | None | near | 125 | residual: 125 mismatch | `.run/backlog_drafts/func_8017DECC.c` | +| 770 | func_80185020 | None | | None | near | 125 | residual: 125 mismatch | `.run/backlog_drafts/func_80185020.c` | +| 771 | func_801892CC | None | | None | near | 127 | residual: 127 mismatch | `.run/backlog_drafts/func_801892CC.c` | +| 772 | func_8017EB00 | None | | None | near | 127 | residual: 127 mismatch | `.run/backlog_drafts/func_8017EB00.c` | +| 773 | func_80185E68 | 1 | STRUCT | 132 | near | 131 | STRUCT: 131 mismatch | `.run/backlog_drafts/func_80185E68.c` | +| 774 | func_8017E378 | None | | None | near | 134 | residual: 134 mismatch | `.run/backlog_drafts/func_8017E378.c` | +| 775 | func_80186530 | None | | None | near | 139 | residual: 139 mismatch | `.run/backlog_drafts/func_80186530.c` | +| 776 | func_80186078 | 1 | WAVE | 174 | near | 141 | WAVE: 141 mismatch | `.run/backlog_drafts/func_80186078.c` | +| 777 | func_80184F08 | None | regalloc-order | None | near | 141 | none — MATCH (145/145 ins, match_one confirmed) | `.run/backlog_drafts/func_80184F08.c` | +| 778 | func_80185668 | None | | None | near | 142 | residual: 142 mismatch | `.run/backlog_drafts/func_80185668.c` | +| 779 | func_8017DB0C | None | | None | near | 142 | residual: 142 mismatch | `.run/backlog_drafts/func_8017DB0C.c` | +| 780 | func_80181984 | None | | None | near | 153 | residual: 153 mismatch | `.run/backlog_drafts/func_80181984.c` | +| 781 | func_8017E6EC | None | | None | near | 172 | residual: 172 mismatch | `.run/backlog_drafts/func_8017E6EC.c` | +| 782 | func_80181BE4 | 1 | STRUCT | 201 | near | 173 | STRUCT: 173 mismatch | `.run/backlog_drafts/func_80181BE4.c` | +| 783 | func_80184210 | None | | None | near | 176 | residual: 176 mismatch | `.run/backlog_drafts/func_80184210.c` | +| 784 | func_80180568 | None | | None | near | 185 | residual: 185 mismatch | `.run/backlog_drafts/func_80180568.c` | +| 785 | func_801809C4 | None | | None | near | 190 | residual: 190 mismatch | `.run/backlog_drafts/func_801809C4.c` | +| 786 | func_80183D84 | None | | None | near | 192 | residual: 192 mismatch | `.run/backlog_drafts/func_80183D84.c` | +| 787 | func_80183FEC | None | | None | near | 198 | residual: 198 mismatch | `.run/backlog_drafts/func_80183FEC.c` | +| 788 | func_801823B8 | None | | None | near | 204 | residual: 204 mismatch | `.run/backlog_drafts/func_801823B8.c` | +| 789 | func_801826C4 | None | | None | near | 207 | residual: 207 mismatch | `.run/backlog_drafts/func_801826C4.c` | +| 790 | func_8018C3F8 | None | | None | near | 236 | residual: 236 mismatch | `.run/backlog_drafts/func_8018C3F8.c` | +| 791 | func_8017FD14 | 1 | STRUCT | 249 | near | 240 | STRUCT: 240 mismatch | `.run/backlog_drafts/func_8017FD14.c` | +| 792 | func_8017E7D4 | None | | None | near | 241 | residual: 241 mismatch | `.run/backlog_drafts/func_8017E7D4.c` | +| 793 | func_80183BF8 | None | | None | near | 258 | residual: 258 mismatch | `.run/backlog_drafts/func_80183BF8.c` | +| 794 | func_8017EB30 | None | | None | near | 278 | residual: 278 mismatch | `.run/backlog_drafts/func_8017EB30.c` | +| 795 | func_801804A0 | None | | None | near | 280 | residual: 280 mismatch | `.run/backlog_drafts/func_801804A0.c` | +| 796 | func_80181670 | None | | None | near | 311 | residual: 311 mismatch | `.run/backlog_drafts/func_80181670.c` | +| 797 | func_80189540 | None | | None | near | 463 | residual: 463 mismatch | `.run/backlog_drafts/func_80189540.c` | +| 798 | func_80144B9C | None | | None | near | 728 | residual: 728 mismatch | `.run/backlog_drafts/func_80144B9C.c` | +| 799 | func_80128CFC | 1 | WAVE | 25 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80128CFC.c` | +| 800 | func_80185BA4 | 1 | WAVE | 177 | failed | | won't compile standalone (loose-typing / missing decl) | | +| 801 | func_80183324 | 1 | STRUCT | 324 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80183324.c` | +| 802 | func_8017D8DC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017D8DC.c` | +| 803 | func_8017FFEC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FFEC.c` | +| 804 | func_8017DC18 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DC18.c` | +| 805 | func_801853CC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801853CC.c` | +| 806 | func_80181894 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181894.c` | +| 807 | func_8018BFBC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018BFBC.c` | +| 808 | func_801807F4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801807F4.c` | +| 809 | func_8017FFC8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FFC8.c` | +| 810 | func_8017E99C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E99C.c` | +| 811 | func_80180294 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80180294.c` | +| 812 | func_8017E76C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E76C.c` | +| 813 | func_8017F29C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F29C.c` | +| 814 | func_8017F00C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F00C.c` | +| 815 | func_801802B0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801802B0.c` | +| 816 | func_8017DA1C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DA1C.c` | +| 817 | func_8017FFC4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FFC4.c` | +| 818 | func_8017E2F0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E2F0.c` | +| 819 | func_801841E4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801841E4.c` | +| 820 | func_80181738 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181738.c` | +| 821 | func_801873D8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801873D8.c` | +| 822 | func_80185628 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80185628.c` | +| 823 | func_80181A78 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181A78.c` | +| 824 | func_801805D4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801805D4.c` | +| 825 | func_8017EA1C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017EA1C.c` | +| 826 | func_8017F098 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F098.c` | +| 827 | func_801822CC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801822CC.c` | +| 828 | func_8017E3F4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E3F4.c` | +| 829 | func_800D1658 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_800D1658.c` | +| 830 | func_800D1984 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_800D1984.c` | +| 831 | func_800D24A0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_800D24A0.c` | +| 832 | func_8013DD68 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8013DD68.c` | +| 833 | func_80181164 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181164.c` | +| 834 | func_8012D664 | None | schedule | None | failed | | none — MATCH | `.run/backlog_drafts/func_8012D664.c` | +| 835 | func_80136C90 | None | struct | None | failed | | none — MATCH (28 ins). 10-byte 1-aligned struct copy (S10{char s[10]}) from global D_801A5A7C into a stack buffer, then ((void(*)(int, void *, int, int, int, int))func_8001534C)(0,&buf,0x78,0x10,0,0). gcc emits the block move as 2 unaligned words (lwl/lwr+swl/swr) + 2 bytes (lb/sb). | `.run/backlog_drafts/func_80136C90.c` | +| 836 | func_80145CEC | None | struct | None | failed | | 2 residuals — (1) target RELOADS global ptr ((s32 *)&D_80126B78) before each of its 5 field accesses (f28/f18/f1a/f1c/f2c); gcc-2.7.2 CSEs the single pointer load in every clean-C form I tried (int-cast, (s8*)/(s32) M2C_FIELD, struct*), keeping ONE load. volatile forces reloads but hoists them + leaves delay-slot nops the target fills (target is NOT volatile). (2) frame 0x20 not 0x18: target reserves an unused 8-byte stack local @0x10 (address-taken local — reproduced, but every code-free escape optimizes away and a visible escape corrupts the ((int (*)(void))func_80145EE8)(0) arg). Structure/order/values/callees all match; only the alias-driven reload chain + the phantom frame local remain. Family exemplar (~130 overlays). | `.run/backlog_drafts/func_80145CEC.c` | +| 837 | func_8016BCC0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016BCC0.c` | +| 838 | func_8017DE58 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DE58.c` | +| 839 | func_80181A70 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181A70.c` | +| 840 | func_8017E7B4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E7B4.c` | +| 841 | func_8012E778 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8012E778.c` | +| 842 | func_8013C360 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8013C360.c` | +| 843 | func_80149954 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80149954.c` | +| 844 | func_8014CBE8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014CBE8.c` | +| 845 | func_8015B858 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8015B858.c` | +| 846 | func_80161124 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80161124.c` | +| 847 | func_8016829C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016829C.c` | +| 848 | func_801684B4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801684B4.c` | +| 849 | func_8016D848 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016D848.c` | +| 850 | func_8016D984 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016D984.c` | +| 851 | func_8016E728 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016E728.c` | +| 852 | func_8017A4AC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017A4AC.c` | diff --git a/docs/family-hseq.md b/docs/family-hseq.md index 909930e831..da07217f94 100644 --- a/docs/family-hseq.md +++ b/docs/family-hseq.md @@ -2,13 +2,13 @@ > Generated by `tools/family_hseq.py` from the 212 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter. > -> **Scope: the 212 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1565` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD. +> **Scope: the 212 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1567` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD. -**Fleet (overlays):** 96.5% fn / 94.9% instr / 89.4% distinct-code matched. Unmatched: 12,679 instances / 685,757 ins (10,822 distinct classes). +**Fleet (overlays):** 96.5% fn / 94.9% instr / 89.4% distinct-code matched. Unmatched: 12,669 instances / 685,333 ins (10,812 distinct classes). -**Tail cross-check (Phase-25 close):** 8,064 tail fns / 435,320 ins → 519 h_seq families ≥2, **139 substantial (nins≥80) / 82,937 ins**. +**Tail cross-check (Phase-25 close):** 8,047 tail fns / 435,036 ins → 519 h_seq families ≥2, **139 substantial (nins≥80) / 82,716 ins**. -**Full frontier (all unmatched by h_seq):** 2188 target families (≥2 members or a matched sibling) + 4513 singletons (Step-D residue). Substantial: **383 families / 179,081 templatable ins**, 70 with a matched sibling (zero-crack). Substantial member classes: 1,154 PURE · 33 IMM · 6 STRUCT-excluded. +**Full frontier (all unmatched by h_seq):** 2188 target families (≥2 members or a matched sibling) + 4513 singletons (Step-D residue). Substantial: **383 families / 178,860 templatable ins**, 72 with a matched sibling (zero-crack). Substantial member classes: 1,152 PURE · 33 IMM · 6 STRUCT-excluded. ## Top substantial families (by templatable byte-weight) @@ -16,7 +16,7 @@ | # | nins | members (P/I/S) | #addr/#ov | tag | class | matched | jr | exemplar | templ. ins | |--:|--:|--|--|--|--|--:|:-:|--|--:| | 1 | 246 | 16 (16/0/0) | 6/16 | cross-address | PURE | 0 | · | 0x8017c294 draft-ov077 | 3,936 | -| 2 | 126 | 24 (24/0/0) | 11/24 | scattered | PURE | 0 | · | 0x801eded4 modal | 3,024 | +| 2 | 126 | 23 (23/0/0) | 11/23 | scattered | PURE | 1 | · | 0x801eded4 matched | 2,898 | | 3 | 551 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80189540 modal | 2,755 | | 4 | 611 | 4 (4/0/0) | 4/4 | cross-address | PURE | 1 | · | 0x80186e24 matched | 2,444 | | 5 | 770 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80144b9c matched-ov077 | 2,310 | @@ -45,14 +45,14 @@ | 28 | 337 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80159c84 matched-ov077 | 1,011 | | 29 | 329 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013c414 matched-ov077 | 987 | | 30 | 324 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80183324 draft-ov077 | 972 | -| 31 | 95 | 10 (10/0/0) | 9/10 | scattered | PURE | 0 | Y | 0x80185d70 modal | 950 | -| 32 | 188 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017cbc8 modal | 940 | -| 33 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 | -| 34 | 187 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017df40 modal | 935 | -| 35 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 | -| 36 | 890 | 1 (1/0/0) | 1/1 | per-location | PURE | 140 | Y | 0x80178d40 matched-ov077 | 890 | -| 37 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 | -| 38 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 | +| 31 | 188 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017cbc8 modal | 940 | +| 32 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 | +| 33 | 187 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017df40 modal | 935 | +| 34 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 | +| 35 | 890 | 1 (1/0/0) | 1/1 | per-location | PURE | 140 | Y | 0x80178d40 matched-ov077 | 890 | +| 36 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 | +| 37 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 | +| 38 | 95 | 9 (9/0/0) | 9/9 | scattered | PURE | 1 | Y | 0x80185d70 matched | 855 | | 39 | 213 | 4 (4/0/0) | 1/4 | per-location | PURE | 137 | Y | 0x8013ffd8 matched-ov077 | 852 | | 40 | 166 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188b84 modal | 830 | | 41 | 165 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x801818f0 modal | 825 | diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md index 42c05bb8a7..3d3059aa01 100644 --- a/docs/progress.fleet.md +++ b/docs/progress.fleet.md @@ -4,16 +4,16 @@ # cross-binary collapsible-byte leverage: docs/duplicates.cross.md. # THREE progress metrics (all matter — see the labels): -FLEET fn-count byte-ident: 349659 / 363379 = 96.22% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) -FLEET instr-weighted : 12759025 / 13523856 = 94.3% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number) -FLEET distinct-code(uniq): 5159257 / 5851963 = 88.2% (80106/90928 unique fns; the DISTINCT-RE number) +FLEET fn-count byte-ident: 349809 / 363379 = 96.27% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) +FLEET instr-weighted : 12765551 / 13523856 = 94.4% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number) +FLEET distinct-code(uniq): 5164593 / 5851963 = 88.3% (80226/90928 unique fns; the DISTINCT-RE number) MAIN game-code weighted : 436 / 79510 = 0.5% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift) - (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12758589 / 13444346 = 94.9%) + (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12765115 / 13444346 = 94.9%) -FLEET REAL substantive : 347477 (of which dedup-shared 249221 via 1949 groups / 249295 instances) +FLEET REAL substantive : 347627 (of which dedup-shared 249221 via 1949 groups / 249295 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) -FLEET INCLUDE_ASM stubs : 13713 +FLEET INCLUDE_ASM stubs : 13563 FLEET matchable : 363379 | binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % | @@ -24,34 +24,34 @@ FLEET matchable : 363379 | md_MAIN_003 | 3 | 0 | 0 | 3 | 60 | 5.0% | | md_MAIN_008 | 0 | 0 | 0 | 0 | 6 | 0.0% | | md_MAIN_011 | 0 | 0 | 0 | 0 | 21 | 0.0% | -| md_MAIN_013 | 3 | 0 | 0 | 3 | 16 | 18.8% | +| md_MAIN_013 | 5 | 0 | 0 | 5 | 16 | 31.2% | | md_MAIN_014 | 3 | 0 | 0 | 4 | 13 | 30.8% | -| md_MAIN_015 | 3 | 0 | 0 | 3 | 20 | 15.0% | -| md_MAIN_016 | 2 | 0 | 0 | 3 | 13 | 23.1% | +| md_MAIN_015 | 6 | 0 | 0 | 6 | 20 | 30.0% | +| md_MAIN_016 | 3 | 0 | 0 | 4 | 13 | 30.8% | | md_MAIN_017 | 3 | 0 | 0 | 3 | 10 | 30.0% | | md_MAIN_018 | 3 | 0 | 0 | 4 | 11 | 36.4% | -| md_MAIN_019 | 3 | 0 | 0 | 3 | 22 | 13.6% | +| md_MAIN_019 | 4 | 0 | 0 | 4 | 22 | 18.2% | | md_MAIN_020 | 6 | 0 | 0 | 7 | 14 | 50.0% | | md_MAIN_021 | 3 | 0 | 0 | 4 | 11 | 36.4% | -| md_MAIN_022 | 12 | 0 | 0 | 14 | 33 | 42.4% | +| md_MAIN_022 | 13 | 0 | 0 | 15 | 33 | 45.5% | | md_MAIN_023 | 2 | 0 | 0 | 3 | 6 | 50.0% | | md_MAIN_024 | 2 | 0 | 0 | 4 | 6 | 66.7% | | md_MAIN_025 | 3 | 0 | 0 | 3 | 30 | 10.0% | -| md_MAIN_026 | 3 | 0 | 0 | 3 | 24 | 12.5% | +| md_MAIN_026 | 5 | 0 | 0 | 5 | 24 | 20.8% | | md_MAIN_027 | 7 | 0 | 0 | 9 | 29 | 31.0% | | md_MAIN_028 | 3 | 0 | 0 | 3 | 22 | 13.6% | | md_MAIN_029 | 3 | 0 | 0 | 4 | 11 | 36.4% | | md_MAIN_030 | 3 | 0 | 0 | 3 | 10 | 30.0% | -| md_MAIN_031 | 2 | 0 | 0 | 2 | 18 | 11.1% | -| md_MAIN_032 | 2 | 0 | 0 | 2 | 10 | 20.0% | -| md_MAIN_033 | 2 | 0 | 0 | 2 | 19 | 10.5% | +| md_MAIN_031 | 3 | 0 | 0 | 3 | 18 | 16.7% | +| md_MAIN_032 | 3 | 0 | 0 | 3 | 10 | 30.0% | +| md_MAIN_033 | 3 | 0 | 0 | 3 | 19 | 15.8% | | md_MAIN_034 | 2 | 0 | 0 | 3 | 28 | 10.7% | | md_MAIN_035 | 7 | 0 | 0 | 8 | 16 | 50.0% | -| md_MAIN_036 | 2 | 0 | 0 | 3 | 28 | 10.7% | -| md_MAIN_037 | 2 | 0 | 0 | 2 | 17 | 11.8% | -| md_MAIN_038 | 3 | 0 | 0 | 3 | 20 | 15.0% | -| md_MAIN_039 | 2 | 0 | 0 | 2 | 26 | 7.7% | -| md_MAIN_040 | 2 | 0 | 0 | 2 | 19 | 10.5% | +| md_MAIN_036 | 5 | 0 | 0 | 6 | 28 | 21.4% | +| md_MAIN_037 | 3 | 0 | 0 | 3 | 17 | 17.6% | +| md_MAIN_038 | 6 | 0 | 0 | 6 | 20 | 30.0% | +| md_MAIN_039 | 4 | 0 | 0 | 4 | 26 | 15.4% | +| md_MAIN_040 | 3 | 0 | 0 | 3 | 19 | 15.8% | | md_MAIN_041 | 3 | 0 | 0 | 3 | 15 | 20.0% | | md_MAIN_042 | 0 | 0 | 0 | 0 | 4 | 0.0% | | md_MAIN_043 | 2 | 0 | 0 | 3 | 23 | 13.0% | @@ -60,44 +60,44 @@ FLEET matchable : 363379 | md_MAIN_046 | 5 | 0 | 0 | 6 | 39 | 15.4% | | md_MAIN_047 | 3 | 0 | 0 | 4 | 12 | 33.3% | | md_SC02_009 | 4 | 0 | 0 | 4 | 40 | 10.0% | -| md_SC03_073 | 10 | 0 | 0 | 12 | 28 | 42.9% | -| md_SC03_074 | 11 | 0 | 0 | 13 | 29 | 44.8% | -| md_SC03_075 | 13 | 0 | 0 | 15 | 41 | 36.6% | -| md_SC03_076 | 13 | 0 | 0 | 15 | 66 | 22.7% | -| md_SC03_077 | 11 | 0 | 0 | 13 | 35 | 37.1% | -| md_SC03_078 | 9 | 0 | 0 | 11 | 27 | 40.7% | -| md_SC03_079 | 11 | 0 | 0 | 13 | 29 | 44.8% | -| md_SC03_132 | 11 | 0 | 0 | 13 | 28 | 46.4% | -| md_SC03_133 | 12 | 0 | 0 | 14 | 29 | 48.3% | -| md_SC03_134 | 14 | 0 | 0 | 16 | 41 | 39.0% | -| md_SC03_135 | 14 | 0 | 0 | 16 | 66 | 24.2% | -| md_SC03_136 | 12 | 0 | 0 | 14 | 35 | 40.0% | -| md_SC03_137 | 10 | 0 | 0 | 12 | 27 | 44.4% | -| md_SC03_138 | 14 | 0 | 0 | 18 | 37 | 48.6% | -| md_SC04_024 | 10 | 0 | 0 | 12 | 28 | 42.9% | -| md_SC04_025 | 11 | 0 | 0 | 13 | 29 | 44.8% | -| md_SC04_026 | 13 | 0 | 0 | 15 | 41 | 36.6% | -| md_SC04_027 | 13 | 0 | 0 | 15 | 66 | 22.7% | -| md_SC04_028 | 11 | 0 | 0 | 13 | 35 | 37.1% | -| md_SC04_029 | 9 | 0 | 0 | 11 | 27 | 40.7% | -| md_SC04_030 | 11 | 0 | 0 | 15 | 31 | 48.4% | -| md_SC05_023 | 10 | 0 | 0 | 12 | 28 | 42.9% | -| md_SC05_024 | 11 | 0 | 0 | 13 | 29 | 44.8% | -| md_SC05_025 | 13 | 0 | 0 | 15 | 41 | 36.6% | -| md_SC05_026 | 13 | 0 | 0 | 15 | 66 | 22.7% | -| md_SC05_027 | 11 | 0 | 0 | 13 | 35 | 37.1% | -| md_SC05_028 | 9 | 0 | 0 | 11 | 27 | 40.7% | -| md_SC05_029 | 11 | 0 | 0 | 15 | 31 | 48.4% | +| md_SC03_073 | 14 | 0 | 0 | 16 | 28 | 57.1% | +| md_SC03_074 | 15 | 0 | 0 | 17 | 29 | 58.6% | +| md_SC03_075 | 17 | 0 | 0 | 19 | 41 | 46.3% | +| md_SC03_076 | 19 | 0 | 0 | 21 | 66 | 31.8% | +| md_SC03_077 | 13 | 0 | 0 | 15 | 35 | 42.9% | +| md_SC03_078 | 13 | 0 | 0 | 15 | 27 | 55.6% | +| md_SC03_079 | 15 | 0 | 0 | 17 | 29 | 58.6% | +| md_SC03_132 | 15 | 0 | 0 | 17 | 28 | 60.7% | +| md_SC03_133 | 16 | 0 | 0 | 18 | 29 | 62.1% | +| md_SC03_134 | 18 | 0 | 0 | 20 | 41 | 48.8% | +| md_SC03_135 | 20 | 0 | 0 | 22 | 66 | 33.3% | +| md_SC03_136 | 14 | 0 | 0 | 16 | 35 | 45.7% | +| md_SC03_137 | 14 | 0 | 0 | 16 | 27 | 59.3% | +| md_SC03_138 | 17 | 0 | 0 | 21 | 37 | 56.8% | +| md_SC04_024 | 15 | 0 | 0 | 17 | 28 | 60.7% | +| md_SC04_025 | 16 | 0 | 0 | 18 | 29 | 62.1% | +| md_SC04_026 | 18 | 0 | 0 | 20 | 41 | 48.8% | +| md_SC04_027 | 20 | 0 | 0 | 22 | 66 | 33.3% | +| md_SC04_028 | 14 | 0 | 0 | 16 | 35 | 45.7% | +| md_SC04_029 | 14 | 0 | 0 | 16 | 27 | 59.3% | +| md_SC04_030 | 16 | 0 | 0 | 20 | 31 | 64.5% | +| md_SC05_023 | 14 | 0 | 0 | 16 | 28 | 57.1% | +| md_SC05_024 | 14 | 0 | 0 | 16 | 29 | 55.2% | +| md_SC05_025 | 16 | 0 | 0 | 18 | 41 | 43.9% | +| md_SC05_026 | 18 | 0 | 0 | 20 | 66 | 30.3% | +| md_SC05_027 | 12 | 0 | 0 | 14 | 35 | 40.0% | +| md_SC05_028 | 12 | 0 | 0 | 14 | 27 | 51.9% | +| md_SC05_029 | 14 | 0 | 0 | 18 | 31 | 58.1% | | md_SC07_003 | 12 | 0 | 0 | 12 | 100 | 12.0% | | md_SC07_004 | 40 | 0 | 0 | 40 | 315 | 12.7% | -| ov_MAIN_012 | 2176 | 1658 | 0 | 2255 | 2403 | 93.8% | +| ov_MAIN_012 | 2177 | 1658 | 0 | 2256 | 2403 | 93.9% | | ov_SC01_000 | 2390 | 1775 | 0 | 2390 | 2403 | 99.5% | | ov_SC01_001 | 2398 | 1776 | 0 | 2400 | 2466 | 97.3% | -| ov_SC01_004 | 2395 | 1767 | 0 | 2396 | 2414 | 99.3% | -| ov_SC01_005 | 2427 | 1790 | 0 | 2427 | 2503 | 97.0% | -| ov_SC01_006 | 2427 | 1790 | 0 | 2427 | 2503 | 97.0% | -| ov_SC01_008 | 2395 | 1767 | 0 | 2397 | 2426 | 98.8% | -| ov_SC01_009 | 2422 | 1768 | 0 | 2423 | 2507 | 96.6% | +| ov_SC01_004 | 2396 | 1767 | 0 | 2397 | 2414 | 99.3% | +| ov_SC01_005 | 2428 | 1790 | 0 | 2428 | 2503 | 97.0% | +| ov_SC01_006 | 2428 | 1790 | 0 | 2428 | 2503 | 97.0% | +| ov_SC01_008 | 2396 | 1767 | 0 | 2398 | 2426 | 98.8% | +| ov_SC01_009 | 2423 | 1768 | 0 | 2424 | 2507 | 96.7% | | ov_SC01_074 | 2397 | 1768 | 0 | 2399 | 2425 | 98.9% | | ov_SC01_077 | 2562 | 1733 | 0 | 2564 | 2586 | 99.1% | | ov_SC01_080 | 2426 | 1771 | 0 | 2426 | 2512 | 96.6% | @@ -131,7 +131,7 @@ FLEET matchable : 363379 | ov_SC03_014 | 2575 | 1802 | 0 | 2575 | 2685 | 95.9% | | ov_SC03_015 | 2574 | 1802 | 0 | 2574 | 2685 | 95.9% | | ov_SC03_023 | 2402 | 1771 | 0 | 2403 | 2435 | 98.7% | -| ov_SC03_024 | 2518 | 1776 | 0 | 2525 | 2641 | 95.6% | +| ov_SC03_024 | 2521 | 1776 | 0 | 2528 | 2641 | 95.7% | | ov_SC03_028 | 2464 | 1772 | 0 | 2468 | 2664 | 92.6% | | ov_SC03_029 | 2501 | 1774 | 0 | 2511 | 2644 | 95.0% | | ov_SC03_030 | 2420 | 1776 | 0 | 2422 | 2495 | 97.1% | @@ -184,7 +184,7 @@ FLEET matchable : 363379 | ov_SC04_012 | 2398 | 1771 | 0 | 2399 | 2420 | 99.1% | | ov_SC04_015 | 2535 | 1772 | 0 | 2546 | 2611 | 97.5% | | ov_SC04_016 | 2402 | 1771 | 0 | 2404 | 2440 | 98.5% | -| ov_SC04_018 | 2676 | 1808 | 0 | 2676 | 2857 | 93.7% | +| ov_SC04_018 | 2677 | 1808 | 0 | 2677 | 2857 | 93.7% | | ov_SC04_019 | 2674 | 1808 | 0 | 2674 | 2857 | 93.6% | | ov_SC04_020 | 2516 | 1771 | 0 | 2528 | 2567 | 98.5% | | ov_SC04_021 | 2401 | 1773 | 0 | 2401 | 2423 | 99.1% | @@ -203,7 +203,7 @@ FLEET matchable : 363379 | ov_SC05_017 | 2651 | 1768 | 0 | 2662 | 2842 | 93.7% | | ov_SC05_018 | 2548 | 1771 | 0 | 2561 | 2673 | 95.8% | | ov_SC05_019 | 2401 | 1773 | 0 | 2401 | 2423 | 99.1% | -| ov_SC06_000 | 2530 | 1780 | 0 | 2533 | 2691 | 94.1% | +| ov_SC06_000 | 2533 | 1780 | 0 | 2536 | 2691 | 94.2% | | ov_SC06_006 | 2424 | 1771 | 0 | 2425 | 2511 | 96.6% | | ov_SC06_008 | 2489 | 1773 | 0 | 2495 | 2542 | 98.2% | | ov_SC06_010 | 2461 | 1771 | 0 | 2466 | 2517 | 98.0% | @@ -224,10 +224,10 @@ FLEET matchable : 363379 | ov_SC06_033 | 2493 | 1772 | 0 | 2500 | 2631 | 95.0% | | ov_SC07_000 | 2434 | 1775 | 0 | 2436 | 2521 | 96.6% | | ov_SC07_001 | 2405 | 1771 | 0 | 2407 | 2454 | 98.1% | -| ov_SC07_002 | 2461 | 1772 | 0 | 2465 | 2579 | 95.6% | +| ov_SC07_002 | 2462 | 1772 | 0 | 2466 | 2579 | 95.6% | | ov_SC07_006 | 2326 | 1595 | 0 | 2406 | 2455 | 98.0% | | ov_SC07_007 | 2339 | 1628 | 0 | 2423 | 2612 | 92.8% | | ov_SC07_008 | 2386 | 1771 | 0 | 2386 | 2386 | 100.0% | | ov_SC07_009 | 2398 | 1771 | 0 | 2400 | 2430 | 98.8% | -| ov_SC07_010 | 2321 | 1649 | 0 | 2404 | 2523 | 95.3% | +| ov_SC07_010 | 2322 | 1649 | 0 | 2405 | 2523 | 95.3% | | ov_SC07_011 | 2341 | 1627 | 0 | 2421 | 2448 | 98.9% | diff --git a/src/md_MAIN_013/md_MAIN_013.c b/src/md_MAIN_013/md_MAIN_013.c index 077152f1b0..740ce83cae 100644 --- a/src/md_MAIN_013/md_MAIN_013.c +++ b/src/md_MAIN_013/md_MAIN_013.c @@ -36,11 +36,39 @@ INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB0E8); INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB138); -INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB370); + +extern void func_80146C3C(void); + +void func_800CB370(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CB908[])(void); + if (D_80078EC1 == 0x7) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CB908[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB3CC); -INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB510); + +extern void func_80146C3C(void); + +void func_800CB510(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CB914[])(void); + if (D_80078EC1 == 0x7) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CB914[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB56C); diff --git a/src/md_MAIN_015/md_MAIN_015.c b/src/md_MAIN_015/md_MAIN_015.c index 093d85feb5..d1c8e2974a 100644 --- a/src/md_MAIN_015/md_MAIN_015.c +++ b/src/md_MAIN_015/md_MAIN_015.c @@ -38,7 +38,21 @@ s32 func_800CB190(s32 a0) } -INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB1C0); + +extern void func_800CB474(void); + +void func_800CB1C0(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBB38[])(void); + if (D_80078EC1 == 0x8) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBB38[v0](); + } else { + func_800CB474(); + } +} + INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB21C); @@ -46,7 +60,21 @@ INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB2E0); INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB474); -INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB494); + +extern void func_80146C3C(void); + +void func_800CB494(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBB58[])(void); + if (D_80078EC1 == 0x8) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBB58[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB4F0); @@ -54,7 +82,21 @@ INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB6A4); INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB6FC); -INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB830); + +extern void func_80146C3C(void); + +void func_800CB830(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBB60[])(void); + if (D_80078EC1 == 0x8) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBB60[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB88C); diff --git a/src/md_MAIN_016/md_MAIN_016.c b/src/md_MAIN_016/md_MAIN_016.c index bc561b1183..eb0b4b76fe 100644 --- a/src/md_MAIN_016/md_MAIN_016.c +++ b/src/md_MAIN_016/md_MAIN_016.c @@ -27,7 +27,21 @@ INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAEF4); void func_800CAF20(void) { } -INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAF28); + +extern void func_80146C3C(void); + +void func_800CAF28(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CB53C[])(void); + if (D_80078EC1 == 0x1) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CB53C[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAF84); diff --git a/src/md_MAIN_019/md_MAIN_019.c b/src/md_MAIN_019/md_MAIN_019.c index af16f11a39..43d78cd77f 100644 --- a/src/md_MAIN_019/md_MAIN_019.c +++ b/src/md_MAIN_019/md_MAIN_019.c @@ -38,7 +38,21 @@ s32 func_800CB170(s32 a0) INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB1A0); -INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB2C8); + +extern void func_800CB4A8(void); + +void func_800CB2C8(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CC124[])(void); + if (D_80078EC1 == 0xd) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CC124[v0](); + } else { + func_800CB4A8(); + } +} + INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB324); diff --git a/src/md_MAIN_022/md_MAIN_022.c b/src/md_MAIN_022/md_MAIN_022.c index e93207e7ed..be42eb3b45 100644 --- a/src/md_MAIN_022/md_MAIN_022.c +++ b/src/md_MAIN_022/md_MAIN_022.c @@ -88,7 +88,21 @@ INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB550); INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB5E4); -INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB630); + +extern void func_80146C3C(void); + +void func_800CB630(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBD14[])(void); + if (D_80078EC1 == 0x4) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBD14[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB68C); diff --git a/src/md_MAIN_026/md_MAIN_026.c b/src/md_MAIN_026/md_MAIN_026.c index 260872f6cc..4ec11e4d75 100644 --- a/src/md_MAIN_026/md_MAIN_026.c +++ b/src/md_MAIN_026/md_MAIN_026.c @@ -37,7 +37,21 @@ INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB098); INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB108); -INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB134); + +extern void func_800CB5D4(void); + +void func_800CB134(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBB24[])(void); + if (D_80078EC1 == 0x16) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBB24[v0](); + } else { + func_800CB5D4(); + } +} + INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB190); @@ -51,7 +65,21 @@ INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB5D4); INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB5F4); -INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB62C); + +extern void func_800CB8A4(void); + +void func_800CB62C(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBB48[])(void); + if (D_80078EC1 == 0x16) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBB48[v0](); + } else { + func_800CB8A4(); + } +} + INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB688); diff --git a/src/md_MAIN_031/md_MAIN_031.c b/src/md_MAIN_031/md_MAIN_031.c index a575df682f..08e0c63174 100644 --- a/src/md_MAIN_031/md_MAIN_031.c +++ b/src/md_MAIN_031/md_MAIN_031.c @@ -42,7 +42,21 @@ INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CB6A0); INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CB964); -INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CBBB8); + +extern void func_800CBEB8(void); + +void func_800CBBB8(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CC030[])(void); + if (D_80078EC1 == 0x1a) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CC030[v0](); + } else { + func_800CBEB8(); + } +} + INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CBC14); diff --git a/src/md_MAIN_032/md_MAIN_032.c b/src/md_MAIN_032/md_MAIN_032.c index 3bd3c93683..216cd5bbe6 100644 --- a/src/md_MAIN_032/md_MAIN_032.c +++ b/src/md_MAIN_032/md_MAIN_032.c @@ -28,7 +28,21 @@ INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAF60); INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAFD0); -INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CB054); + +extern void func_800CB24C(void); + +void func_800CB054(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CB2A8[])(void); + if (D_80078EC1 == 0x9) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CB2A8[v0](); + } else { + func_800CB24C(); + } +} + INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CB0B0); diff --git a/src/md_MAIN_033/md_MAIN_033.c b/src/md_MAIN_033/md_MAIN_033.c index 0eb3bf1324..9fbf542725 100644 --- a/src/md_MAIN_033/md_MAIN_033.c +++ b/src/md_MAIN_033/md_MAIN_033.c @@ -44,7 +44,21 @@ INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB3D8); INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB4EC); -INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB580); + +extern void func_80146C3C(void); + +void func_800CB580(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CB8F0[])(void); + if (D_80078EC1 == 0xb) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CB8F0[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB5DC); diff --git a/src/md_MAIN_036/md_MAIN_036.c b/src/md_MAIN_036/md_MAIN_036.c index 34b10a62ee..2055c39dc7 100644 --- a/src/md_MAIN_036/md_MAIN_036.c +++ b/src/md_MAIN_036/md_MAIN_036.c @@ -29,7 +29,21 @@ INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAF4C); void func_800CAFCC(void) { } -INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAFD4); + +extern void func_800CB5A8(void); + +void func_800CAFD4(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBFB8[])(void); + if (D_80078EC1 == 0x17) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBFB8[v0](); + } else { + func_800CB5A8(); + } +} + INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB030); @@ -45,7 +59,21 @@ INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB570); INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB5A8); -INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB5D8); + +extern void func_800CB774(void); + +void func_800CB5D8(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBFD4[])(void); + if (D_80078EC1 == 0x17) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBFD4[v0](); + } else { + func_800CB774(); + } +} + INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CB634); diff --git a/src/md_MAIN_037/md_MAIN_037.c b/src/md_MAIN_037/md_MAIN_037.c index f2901275e2..b646d143f7 100644 --- a/src/md_MAIN_037/md_MAIN_037.c +++ b/src/md_MAIN_037/md_MAIN_037.c @@ -44,7 +44,21 @@ INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB358); INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB378); -INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB424); + +extern void func_80146C3C(void); + +void func_800CB424(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CB654[])(void); + if (D_80078EC1 == 0x19) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CB654[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB480); diff --git a/src/md_MAIN_038/md_MAIN_038.c b/src/md_MAIN_038/md_MAIN_038.c index 0e7c2e38e6..dc24efde4e 100644 --- a/src/md_MAIN_038/md_MAIN_038.c +++ b/src/md_MAIN_038/md_MAIN_038.c @@ -38,7 +38,21 @@ s32 func_800CB1E4(s32 a0) } -INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB214); + +extern void func_800CB4F8(void); + +void func_800CB214(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBBC8[])(void); + if (D_80078EC1 == 0x1b) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBBC8[v0](); + } else { + func_800CB4F8(); + } +} + INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB270); @@ -46,7 +60,21 @@ INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB360); INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB4F8); -INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB518); + +extern void func_80146C3C(void); + +void func_800CB518(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBBE8[])(void); + if (D_80078EC1 == 0x1b) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBBE8[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB574); @@ -54,7 +82,21 @@ INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB728); INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB780); -INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB8B4); + +extern void func_80146C3C(void); + +void func_800CB8B4(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBBF0[])(void); + if (D_80078EC1 == 0x1b) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBBF0[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB910); diff --git a/src/md_MAIN_039/md_MAIN_039.c b/src/md_MAIN_039/md_MAIN_039.c index d72b632895..f6902391f9 100644 --- a/src/md_MAIN_039/md_MAIN_039.c +++ b/src/md_MAIN_039/md_MAIN_039.c @@ -48,7 +48,21 @@ INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB61C); INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB6F4); -INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB804); + +extern void func_80146C3C(void); + +void func_800CB804(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBEAC[])(void); + if (D_80078EC1 == 0x1c) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBEAC[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CB860); @@ -62,7 +76,21 @@ INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBC10); INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBC40); -INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBC60); + +extern void func_80146C3C(void); + +void func_800CBC60(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CBEF8[])(void); + if (D_80078EC1 == 0x1c) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CBEF8[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CBCBC); diff --git a/src/md_MAIN_040/md_MAIN_040.c b/src/md_MAIN_040/md_MAIN_040.c index 1cb7b77d9a..3186f96518 100644 --- a/src/md_MAIN_040/md_MAIN_040.c +++ b/src/md_MAIN_040/md_MAIN_040.c @@ -40,7 +40,21 @@ INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB3BC); INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB3DC); -INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB488); + +extern void func_80146C3C(void); + +void func_800CB488(void *arg0) { + + extern u8 D_80078EC1; + extern void (*D_800CB948[])(void); + if (D_80078EC1 == 0x1d) { + u16 v0 = *(u16 *)((u8 *)arg0 + 2); + D_800CB948[v0](); + } else { + func_80146C3C(); + } +} + INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CB4E4); diff --git a/src/md_SC03_073/md_SC03_073.c b/src/md_SC03_073/md_SC03_073.c index f24c274fa8..115a84c1a5 100644 --- a/src/md_SC03_073/md_SC03_073.c +++ b/src/md_SC03_073/md_SC03_073.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_073/nonmatchings/md_SC03_073", D_801EF468); INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF6D0); -INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF738); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EF738(void *arg0) { + + extern u8 D_801EFEEC[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EFEEC)); + func_80171A1C(arg0); + } +} + void func_801EF790(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF7F4); void func_801EF85C(void) { } -INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF864); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EF928(void *a0); + +void func_801EF864(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EF928, 0); + func_801EF928(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EF928(void *a0) { INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF964); -INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EF98C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EF98C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EFF3C[]; + extern u16 D_801EFF40[]; + + MATRIX_801EDED4_801EF98C m1; + SVECTOR_801EDED4_801EF98C svec_in; + SVECTOR_801EDED4_801EF98C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EFF3C[t]; + *(s16 *)(param_1 + 0x2E) = D_801EFF40[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + @@ -130,4 +237,14 @@ INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFC94); INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFDC8); -INCLUDE_ASM("asm/md_SC03_073/nonmatchings/md_SC03_073", func_801EFE60); + +u8 func_801EFE60(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0xD; +} + diff --git a/src/md_SC03_074/md_SC03_074.c b/src/md_SC03_074/md_SC03_074.c index fd363cc80f..332cc8d871 100644 --- a/src/md_SC03_074/md_SC03_074.c +++ b/src/md_SC03_074/md_SC03_074.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_074/nonmatchings/md_SC03_074", D_801EF468); INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF6D0); -INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF738); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EF738(void *arg0) { + + extern u8 D_801EFF94[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EFF94)); + func_80171A1C(arg0); + } +} + void func_801EF790(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF7F4); void func_801EF85C(void) { } -INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF864); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EF928(void *a0); + +void func_801EF864(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EF928, 0); + func_801EF928(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EF928(void *a0) { INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF964); -INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EF98C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EF98C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EFFE4[]; + extern u16 D_801EFFE8[]; + + MATRIX_801EDED4_801EF98C m1; + SVECTOR_801EDED4_801EF98C svec_in; + SVECTOR_801EDED4_801EF98C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EFFE4[t]; + *(s16 *)(param_1 + 0x2E) = D_801EFFE8[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + @@ -144,4 +251,14 @@ INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFD28); INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFE5C); -INCLUDE_ASM("asm/md_SC03_074/nonmatchings/md_SC03_074", func_801EFF08); + +u8 func_801EFF08(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0xE; +} + diff --git a/src/md_SC03_075/md_SC03_075.c b/src/md_SC03_075/md_SC03_075.c index 32a2fac026..8fba239696 100644 --- a/src/md_SC03_075/md_SC03_075.c +++ b/src/md_SC03_075/md_SC03_075.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_075/nonmatchings/md_SC03_075", D_801EF468); INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF6D0); -INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF738); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EF738(void *arg0) { + + extern u8 D_801F045C[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801F045C)); + func_80171A1C(arg0); + } +} + void func_801EF790(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF7F4); void func_801EF85C(void) { } -INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF864); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EF928(void *a0); + +void func_801EF864(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EF928, 0); + func_801EF928(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EF928(void *a0) { INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF964); -INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801EF98C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EF98C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801F04AC[]; + extern u16 D_801F04B0[]; + + MATRIX_801EDED4_801EF98C m1; + SVECTOR_801EDED4_801EF98C svec_in; + SVECTOR_801EDED4_801EF98C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801F04AC[t]; + *(s16 *)(param_1 + 0x2E) = D_801F04B0[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + @@ -182,4 +289,14 @@ extern void func_80029124(s32 arg0, s32 arg1); } -INCLUDE_ASM("asm/md_SC03_075/nonmatchings/md_SC03_075", func_801F03D0); + +u8 func_801F03D0(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0xE; +} + diff --git a/src/md_SC03_076/md_SC03_076.c b/src/md_SC03_076/md_SC03_076.c index 15923b82f8..8ec1ca181c 100644 --- a/src/md_SC03_076/md_SC03_076.c +++ b/src/md_SC03_076/md_SC03_076.c @@ -90,7 +90,27 @@ void func_801EFB40(void) } -INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801EFB5C); + + +extern void func_800D2624(void); + +void func_801EFB5C(void) { + + extern short D_800B9A02; + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + INCLUDE_RODATA("asm/md_SC03_076/nonmatchings/md_SC03_076", D_801EF468); @@ -178,7 +198,22 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1CB0); INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1CD8); -INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1D40); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801F1D40(void *arg0) { + + extern u8 D_801F34DC[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801F34DC)); + func_80171A1C(arg0); + } +} + void func_801F1D98(void) { } @@ -199,7 +234,44 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1DFC); void func_801F1E64(void) { } -INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1E6C); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801F1F30(void *a0); + +void func_801F1E6C(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801F1F30, 0); + func_801F1F30(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -212,7 +284,62 @@ void func_801F1F30(void *a0) { INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1F6C); -INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F1F94); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801F1F94; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801F1F94; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801F1F94(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801F352C[]; + extern u16 D_801F3530[]; + + MATRIX_801EDED4_801F1F94 m1; + SVECTOR_801EDED4_801F1F94 svec_in; + SVECTOR_801EDED4_801F1F94 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801F352C[t]; + *(s16 *)(param_1 + 0x2E) = D_801F3530[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F218C); @@ -271,6 +398,25 @@ INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2930); INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F2970); -INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F29B0); -INCLUDE_ASM("asm/md_SC03_076/nonmatchings/md_SC03_076", func_801F29E0); +u8 func_801F29B0(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0x16; +} + + + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801F29E0(void) { + + extern u8 D_800AF040[]; + func_8001ABBC(0, 0, D_800AF040, 0, 0); +} + diff --git a/src/md_SC03_077/md_SC03_077.c b/src/md_SC03_077/md_SC03_077.c index d97895d1e0..761e9e7223 100644 --- a/src/md_SC03_077/md_SC03_077.c +++ b/src/md_SC03_077/md_SC03_077.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_077/nonmatchings/md_SC03_077", D_801EF468); INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF704); -INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EF76C); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EF76C(void *arg0) { + + extern u8 D_801F00E8[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801F00E8)); + func_80171A1C(arg0); + } +} + void func_801EF7C4(void) { } @@ -156,4 +171,14 @@ INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFF50); INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801EFFAC); -INCLUDE_ASM("asm/md_SC03_077/nonmatchings/md_SC03_077", func_801F005C); + +u8 func_801F005C(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0xD; +} + diff --git a/src/md_SC03_078/md_SC03_078.c b/src/md_SC03_078/md_SC03_078.c index 5ff2640084..6ac2e4cc5f 100644 --- a/src/md_SC03_078/md_SC03_078.c +++ b/src/md_SC03_078/md_SC03_078.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_078/nonmatchings/md_SC03_078", D_801EF468); INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF6D0); -INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF738); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EF738(void *arg0) { + + extern u8 D_801EFE3C[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EFE3C)); + func_80171A1C(arg0); + } +} + void func_801EF790(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF7F4); void func_801EF85C(void) { } -INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF864); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EF928(void *a0); + +void func_801EF864(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EF928, 0); + func_801EF928(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EF928(void *a0) { INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF964); -INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EF98C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF98C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF98C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EF98C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EFE8C[]; + extern u16 D_801EFE90[]; + + MATRIX_801EDED4_801EF98C m1; + SVECTOR_801EDED4_801EF98C svec_in; + SVECTOR_801EDED4_801EF98C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EFE8C[t]; + *(s16 *)(param_1 + 0x2E) = D_801EFE90[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + @@ -124,4 +231,14 @@ INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFCAC); INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFD40); -INCLUDE_ASM("asm/md_SC03_078/nonmatchings/md_SC03_078", func_801EFDB0); + +u8 func_801EFDB0(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0x17; +} + diff --git a/src/md_SC03_079/md_SC03_079.c b/src/md_SC03_079/md_SC03_079.c index 763738368e..015c34529f 100644 --- a/src/md_SC03_079/md_SC03_079.c +++ b/src/md_SC03_079/md_SC03_079.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_079/nonmatchings/md_SC03_079", D_801EF468); INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF6E0); -INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF748); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EF748(void *arg0) { + + extern u8 D_801EFF60[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EFF60)); + func_80171A1C(arg0); + } +} + void func_801EF7A0(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF804); void func_801EF86C(void) { } -INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF874); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EF938(void *a0); + +void func_801EF874(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EF938, 0); + func_801EF938(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EF938(void *a0) { INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF974); -INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EF99C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EF99C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EF99C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EF99C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EFFB0[]; + extern u16 D_801EFFB4[]; + + MATRIX_801EDED4_801EF99C m1; + SVECTOR_801EDED4_801EF99C svec_in; + SVECTOR_801EDED4_801EF99C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EFFB0[t]; + *(s16 *)(param_1 + 0x2E) = D_801EFFB4[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFB94); @@ -144,4 +251,14 @@ INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFD9C); INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFE3C); -INCLUDE_ASM("asm/md_SC03_079/nonmatchings/md_SC03_079", func_801EFED4); + +u8 func_801EFED4(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0x29; +} + diff --git a/src/md_SC03_132/md_SC03_132.c b/src/md_SC03_132/md_SC03_132.c index 2e1027e5a6..d772a80c13 100644 --- a/src/md_SC03_132/md_SC03_132.c +++ b/src/md_SC03_132/md_SC03_132.c @@ -22,7 +22,29 @@ s32 func_801E2670(s32 param_1) { } -INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E26BC); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E26BC(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E275C); @@ -57,7 +79,22 @@ INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2830); INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2858); -INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E28C0); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E28C0(void *arg0) { + + extern u8 D_801E304C[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E304C)); + func_80171A1C(arg0); + } +} + void func_801E2918(void) { } @@ -78,7 +115,44 @@ INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E297C); void func_801E29E4(void) { } -INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E29EC); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E2AB0(void *a0); + +void func_801E29EC(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E2AB0, 0); + func_801E2AB0(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -91,7 +165,62 @@ void func_801E2AB0(void *a0) { INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2AEC); -INCLUDE_ASM("asm/md_SC03_132/nonmatchings/md_SC03_132", func_801E2B14); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B14; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B14; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E2B14(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E309C[]; + extern u16 D_801E30A0[]; + + MATRIX_801EDED4_801E2B14 m1; + SVECTOR_801EDED4_801E2B14 svec_in; + SVECTOR_801EDED4_801E2B14 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E309C[t]; + *(s16 *)(param_1 + 0x2E) = D_801E30A0[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + s32 func_801E2D0C(void) { diff --git a/src/md_SC03_133/md_SC03_133.c b/src/md_SC03_133/md_SC03_133.c index 5f667d0f0d..a1d80a6be4 100644 --- a/src/md_SC03_133/md_SC03_133.c +++ b/src/md_SC03_133/md_SC03_133.c @@ -22,7 +22,29 @@ s32 func_801E2678(s32 param_1) { } -INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E26C4); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E26C4(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2764); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_133/nonmatchings/md_SC03_133", D_801E25E8); INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2860); -INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E28C8); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E28C8(void *arg0) { + + extern u8 D_801E30FC[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E30FC)); + func_80171A1C(arg0); + } +} + void func_801E2920(void) { } @@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2984); void func_801E29EC(void) { } -INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E29F4); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E2AB8(void *a0); + +void func_801E29F4(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E2AB8, 0); + func_801E2AB8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +167,62 @@ void func_801E2AB8(void *a0) { INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2AF4); -INCLUDE_ASM("asm/md_SC03_133/nonmatchings/md_SC03_133", func_801E2B1C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E2B1C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E314C[]; + extern u16 D_801E3150[]; + + MATRIX_801EDED4_801E2B1C m1; + SVECTOR_801EDED4_801E2B1C svec_in; + SVECTOR_801EDED4_801E2B1C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E314C[t]; + *(s16 *)(param_1 + 0x2E) = D_801E3150[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + s32 func_801E2D14(void) { diff --git a/src/md_SC03_134/md_SC03_134.c b/src/md_SC03_134/md_SC03_134.c index b95a00de6e..fffd870688 100644 --- a/src/md_SC03_134/md_SC03_134.c +++ b/src/md_SC03_134/md_SC03_134.c @@ -22,7 +22,29 @@ s32 func_801E2678(s32 param_1) { } -INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E26C4); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E26C4(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2764); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_134/nonmatchings/md_SC03_134", D_801E25E8); INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2860); -INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E28C8); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E28C8(void *arg0) { + + extern u8 D_801E35C4[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E35C4)); + func_80171A1C(arg0); + } +} + void func_801E2920(void) { } @@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2984); void func_801E29EC(void) { } -INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E29F4); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E2AB8(void *a0); + +void func_801E29F4(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E2AB8, 0); + func_801E2AB8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +167,62 @@ void func_801E2AB8(void *a0) { INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2AF4); -INCLUDE_ASM("asm/md_SC03_134/nonmatchings/md_SC03_134", func_801E2B1C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E2B1C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E363C[]; + extern u16 D_801E3640[]; + + MATRIX_801EDED4_801E2B1C m1; + SVECTOR_801EDED4_801E2B1C svec_in; + SVECTOR_801EDED4_801E2B1C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E363C[t]; + *(s16 *)(param_1 + 0x2E) = D_801E3640[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + s32 func_801E2D14(void) { diff --git a/src/md_SC03_135/md_SC03_135.c b/src/md_SC03_135/md_SC03_135.c index 65985e748d..fb7ecf5010 100644 --- a/src/md_SC03_135/md_SC03_135.c +++ b/src/md_SC03_135/md_SC03_135.c @@ -90,7 +90,27 @@ void func_801E2CC0(void) } -INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E2CDC); + + +extern void func_800D2624(void); + +void func_801E2CDC(void) { + + extern short D_800B9A02; + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + INCLUDE_RODATA("asm/md_SC03_135/nonmatchings/md_SC03_135", D_801E25E8); @@ -150,7 +170,29 @@ s32 func_801E4C24(void) { INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4C48); -INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4C9C); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E4C9C(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4D3C); @@ -178,7 +220,22 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4E40); INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4E68); -INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4ED0); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E4ED0(void *arg0) { + + extern u8 D_801E6644[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E6644)); + func_80171A1C(arg0); + } +} + void func_801E4F28(void) { } @@ -199,7 +256,44 @@ INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4F8C); void func_801E4FF4(void) { } -INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E4FFC); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E50C0(void *a0); + +void func_801E4FFC(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E50C0, 0); + func_801E50C0(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -212,7 +306,62 @@ void func_801E50C0(void *a0) { INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E50FC); -INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5124); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E5124; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E5124; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E5124(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E6694[]; + extern u16 D_801E6698[]; + + MATRIX_801EDED4_801E5124 m1; + SVECTOR_801EDED4_801E5124 svec_in; + SVECTOR_801EDED4_801E5124 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E6694[t]; + *(s16 *)(param_1 + 0x2E) = D_801E6698[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + s32 func_801E531C(void) { @@ -220,7 +369,16 @@ s32 func_801E531C(void) { } -INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5324); + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801E5324(void) { + + extern u8 D_800AF040[]; + func_8001ABBC(0, 0, D_800AF040, 0, 0); +} + INCLUDE_ASM("asm/md_SC03_135/nonmatchings/md_SC03_135", func_801E5358); diff --git a/src/md_SC03_136/md_SC03_136.c b/src/md_SC03_136/md_SC03_136.c index 047750424a..a4f65a740f 100644 --- a/src/md_SC03_136/md_SC03_136.c +++ b/src/md_SC03_136/md_SC03_136.c @@ -22,7 +22,29 @@ s32 func_801E268C(s32 param_1) { } -INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E26D8); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E26D8(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2778); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_136/nonmatchings/md_SC03_136", D_801E25E8); INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E2874); -INCLUDE_ASM("asm/md_SC03_136/nonmatchings/md_SC03_136", func_801E28DC); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E28DC(void *arg0) { + + extern u8 D_801E3230[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E3230)); + func_80171A1C(arg0); + } +} + void func_801E2934(void) { } diff --git a/src/md_SC03_137/md_SC03_137.c b/src/md_SC03_137/md_SC03_137.c index a89c2f0cdb..444fb09d2c 100644 --- a/src/md_SC03_137/md_SC03_137.c +++ b/src/md_SC03_137/md_SC03_137.c @@ -22,7 +22,29 @@ s32 func_801E2678(s32 param_1) { } -INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E26C4); + + +extern s32 func_800D1E28(void); +extern void func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E26C4(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + ((s32 (*)(s32, s32))func_8002D4C8)(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + ((s32 (*)(s32, s32))func_8002D4C8)(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2764); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC03_137/nonmatchings/md_SC03_137", D_801E25E8); INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2860); -INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E28C8); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E28C8(void *arg0) { + + extern u8 D_801E2FA4[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E2FA4)); + func_80171A1C(arg0); + } +} + void func_801E2920(void) { } @@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2984); void func_801E29EC(void) { } -INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E29F4); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E2AB8(void *a0); + +void func_801E29F4(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E2AB8, 0); + func_801E2AB8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +167,62 @@ void func_801E2AB8(void *a0) { INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2AF4); -INCLUDE_ASM("asm/md_SC03_137/nonmatchings/md_SC03_137", func_801E2B1C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E2B1C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E2FF4[]; + extern u16 D_801E2FF8[]; + + MATRIX_801EDED4_801E2B1C m1; + SVECTOR_801EDED4_801E2B1C svec_in; + SVECTOR_801EDED4_801E2B1C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E2FF4[t]; + *(s16 *)(param_1 + 0x2E) = D_801E2FF8[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + s32 func_801E2D14(void) { diff --git a/src/md_SC03_138/md_SC03_138.c b/src/md_SC03_138/md_SC03_138.c index 5c8ba4dbc1..6cada1b96f 100644 --- a/src/md_SC03_138/md_SC03_138.c +++ b/src/md_SC03_138/md_SC03_138.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC03_138/nonmatchings/md_SC03_138", D_801E25E8); INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2860); -INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E28C8); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E28C8(void *arg0) { + + extern u8 D_801E334C[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E334C)); + func_80171A1C(arg0); + } +} + void func_801E2920(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2984); void func_801E29EC(void) { } -INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E29F4); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E2AB8(void *a0); + +void func_801E29F4(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E2AB8, 0); + func_801E2AB8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801E2AB8(void *a0) { INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2AF4); -INCLUDE_ASM("asm/md_SC03_138/nonmatchings/md_SC03_138", func_801E2B1C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E2B1C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E2B1C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E2B1C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E339C[]; + extern u16 D_801E33A0[]; + + MATRIX_801EDED4_801E2B1C m1; + SVECTOR_801EDED4_801E2B1C svec_in; + SVECTOR_801EDED4_801E2B1C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E339C[t]; + *(s16 *)(param_1 + 0x2E) = D_801E33A0[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + diff --git a/src/md_SC04_024/md_SC04_024.c b/src/md_SC04_024/md_SC04_024.c index 5c557d8c70..2c7f5b9b46 100644 --- a/src/md_SC04_024/md_SC04_024.c +++ b/src/md_SC04_024/md_SC04_024.c @@ -22,7 +22,29 @@ s32 func_801E7BB0(s32 param_1) { } -INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7BFC); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E7BFC(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7C9C); @@ -57,7 +79,22 @@ INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7D70); INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7D98); -INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7E00); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E7E00(void *arg0) { + + extern u8 D_801E85B4[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E85B4)); + func_80171A1C(arg0); + } +} + void func_801E7E58(void) { } @@ -78,7 +115,44 @@ INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7EBC); void func_801E7F24(void) { } -INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E7F2C); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E7FF0(void *a0); + +void func_801E7F2C(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E7FF0, 0); + func_801E7FF0(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -91,9 +165,74 @@ void func_801E7FF0(void *a0) { INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E802C); -INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E8054); -INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E824C); +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E8054; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E8054; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E8054(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E8604[]; + extern u16 D_801E8608[]; + + MATRIX_801EDED4_801E8054 m1; + SVECTOR_801EDED4_801E8054 svec_in; + SVECTOR_801EDED4_801E8054 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E8604[t]; + *(s16 *)(param_1 + 0x2E) = D_801E8608[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + + + +u8 func_801E824C(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0xD; +} + diff --git a/src/md_SC04_025/md_SC04_025.c b/src/md_SC04_025/md_SC04_025.c index b60a0b9aa9..a285e0715e 100644 --- a/src/md_SC04_025/md_SC04_025.c +++ b/src/md_SC04_025/md_SC04_025.c @@ -79,7 +79,22 @@ INCLUDE_RODATA("asm/md_SC04_025/nonmatchings/md_SC04_025", D_801E7B28); INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7DA0); -INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7E08); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E7E08(void *arg0) { + + extern u8 D_801E8664[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E8664)); + func_80171A1C(arg0); + } +} + void func_801E7E60(void) { } @@ -100,7 +115,44 @@ INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7EC4); void func_801E7F2C(void) { } -INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E7F34); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E7FF8(void *a0); + +void func_801E7F34(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E7FF8, 0); + func_801E7FF8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -113,7 +165,62 @@ void func_801E7FF8(void *a0) { INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E8034); -INCLUDE_ASM("asm/md_SC04_025/nonmatchings/md_SC04_025", func_801E805C); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E805C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E86B4[]; + extern u16 D_801E86B8[]; + + MATRIX_801EDED4_801E805C m1; + SVECTOR_801EDED4_801E805C svec_in; + SVECTOR_801EDED4_801E805C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E86B4[t]; + *(s16 *)(param_1 + 0x2E) = D_801E86B8[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + u8 func_801E8254(u32 a0) { if ((u32)(a0 - 0x384) < 0x6E) { diff --git a/src/md_SC04_026/md_SC04_026.c b/src/md_SC04_026/md_SC04_026.c index 41f4968dcd..89bbeac3b3 100644 --- a/src/md_SC04_026/md_SC04_026.c +++ b/src/md_SC04_026/md_SC04_026.c @@ -22,7 +22,29 @@ s32 func_801E7BB8(s32 param_1) { } -INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7C04); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E7C04(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7CA4); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_026/nonmatchings/md_SC04_026", D_801E7B28); INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7DA0); -INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7E08); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E7E08(void *arg0) { + + extern u8 D_801E8B2C[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E8B2C)); + func_80171A1C(arg0); + } +} + void func_801E7E60(void) { } @@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7EC4); void func_801E7F2C(void) { } -INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E7F34); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E7FF8(void *a0); + +void func_801E7F34(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E7FF8, 0); + func_801E7FF8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,9 +167,74 @@ void func_801E7FF8(void *a0) { INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8034); -INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E805C); -INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8254); +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E805C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E8B7C[]; + extern u16 D_801E8B80[]; + + MATRIX_801EDED4_801E805C m1; + SVECTOR_801EDED4_801E805C svec_in; + SVECTOR_801EDED4_801E805C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E8B7C[t]; + *(s16 *)(param_1 + 0x2E) = D_801E8B80[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + + + +u8 func_801E8254(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0xE; +} + diff --git a/src/md_SC04_027/md_SC04_027.c b/src/md_SC04_027/md_SC04_027.c index ae03f9f3d7..9154c363de 100644 --- a/src/md_SC04_027/md_SC04_027.c +++ b/src/md_SC04_027/md_SC04_027.c @@ -90,7 +90,27 @@ void func_801E8200(void) } -INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801E821C); + + +extern void func_800D2624(void); + +void func_801E821C(void) { + + extern short D_800B9A02; + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + INCLUDE_RODATA("asm/md_SC04_027/nonmatchings/md_SC04_027", D_801E7B28); @@ -150,7 +170,29 @@ s32 func_801EA164(void) { INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA188); -INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA1DC); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801EA1DC(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA27C); @@ -178,7 +220,22 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA380); INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA3A8); -INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA410); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EA410(void *arg0) { + + extern u8 D_801EBBAC[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EBBAC)); + func_80171A1C(arg0); + } +} + void func_801EA468(void) { } @@ -199,7 +256,44 @@ INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA4CC); void func_801EA534(void) { } -INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA53C); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EA600(void *a0); + +void func_801EA53C(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EA600, 0); + func_801EA600(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -212,11 +306,85 @@ void func_801EA600(void *a0) { INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA63C); -INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA664); -INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA85C); +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EA664; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EA664; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EA664(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EBBFC[]; + extern u16 D_801EBC00[]; + + MATRIX_801EDED4_801EA664 m1; + SVECTOR_801EDED4_801EA664 svec_in; + SVECTOR_801EDED4_801EA664 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EBBFC[t]; + *(s16 *)(param_1 + 0x2E) = D_801EBC00[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + + + +u8 func_801EA85C(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0x16; +} + + + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801EA88C(void) { + + extern u8 D_800AF040[]; + func_8001ABBC(0, 0, D_800AF040, 0, 0); +} -INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA88C); INCLUDE_ASM("asm/md_SC04_027/nonmatchings/md_SC04_027", func_801EA8C0); diff --git a/src/md_SC04_028/md_SC04_028.c b/src/md_SC04_028/md_SC04_028.c index 5315034ed2..e6124c7756 100644 --- a/src/md_SC04_028/md_SC04_028.c +++ b/src/md_SC04_028/md_SC04_028.c @@ -22,7 +22,29 @@ s32 func_801E7BCC(s32 param_1) { } -INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7C18); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E7C18(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7CB8); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_028/nonmatchings/md_SC04_028", D_801E7B28); INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7DB4); -INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E7E1C); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E7E1C(void *arg0) { + + extern u8 D_801E8798[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E8798)); + func_80171A1C(arg0); + } +} + void func_801E7E74(void) { } @@ -95,7 +132,17 @@ INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8048); INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8070); -INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8208); + +u8 func_801E8208(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0xD; +} + INCLUDE_ASM("asm/md_SC04_028/nonmatchings/md_SC04_028", func_801E8238); diff --git a/src/md_SC04_029/md_SC04_029.c b/src/md_SC04_029/md_SC04_029.c index 67dd74f506..5ca4f4a0e6 100644 --- a/src/md_SC04_029/md_SC04_029.c +++ b/src/md_SC04_029/md_SC04_029.c @@ -22,7 +22,29 @@ s32 func_801E7BB8(s32 param_1) { } -INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7C04); + + +extern s32 func_800D1E28(void); +extern void func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E7C04(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + ((s32 (*)(s32, s32))func_8002D4C8)(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + ((s32 (*)(s32, s32))func_8002D4C8)(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7CA4); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_029/nonmatchings/md_SC04_029", D_801E7B28); INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7DA0); -INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7E08); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E7E08(void *arg0) { + + extern u8 D_801E850C[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E850C)); + func_80171A1C(arg0); + } +} + void func_801E7E60(void) { } @@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7EC4); void func_801E7F2C(void) { } -INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E7F34); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E7FF8(void *a0); + +void func_801E7F34(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E7FF8, 0); + func_801E7FF8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,9 +167,74 @@ void func_801E7FF8(void *a0) { INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8034); -INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E805C); -INCLUDE_ASM("asm/md_SC04_029/nonmatchings/md_SC04_029", func_801E8254); +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E805C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E855C[]; + extern u16 D_801E8560[]; + + MATRIX_801EDED4_801E805C m1; + SVECTOR_801EDED4_801E805C svec_in; + SVECTOR_801EDED4_801E805C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E855C[t]; + *(s16 *)(param_1 + 0x2E) = D_801E8560[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + + + +u8 func_801E8254(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0x17; +} + diff --git a/src/md_SC04_030/md_SC04_030.c b/src/md_SC04_030/md_SC04_030.c index 0c53f0fd2d..3f26d22b26 100644 --- a/src/md_SC04_030/md_SC04_030.c +++ b/src/md_SC04_030/md_SC04_030.c @@ -22,7 +22,29 @@ s32 func_801E7BB8(s32 param_1) { } -INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7C04); + + +extern s32 func_800D1E28(void); +extern s32 func_8002D4C8(s32, s32); +extern s32 func_8001BFD0(void); +extern s32 func_800291B4(s32); +extern s32 func_80029524(void); +extern s32 func_800D0C48(s32); + +s32 func_801E7C04(s32 param_1) { + if ((*(s32 *)(param_1 + 0x28) = *(s32 *)(param_1 + 0x28) - 1) == -1) { + func_800D1E28(); + func_8002D4C8(0x1C, 0); + func_8001BFD0(); + if ((func_800291B4(0xCE) & 0xFF) == 0 && func_80029524() == 0) { + func_8002D4C8(0x1D, 0); + func_800D0C48(1); + } + *(u8 *)(param_1 + 0x15) = *(u8 *)(param_1 + 0x15) + 1; + } + return 0; +} + INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7CA4); @@ -59,7 +81,22 @@ INCLUDE_RODATA("asm/md_SC04_030/nonmatchings/md_SC04_030", D_801E7B28); INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7DA0); -INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7E08); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801E7E08(void *arg0) { + + extern u8 D_801E8630[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801E8630)); + func_80171A1C(arg0); + } +} + void func_801E7E60(void) { } @@ -80,7 +117,44 @@ INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7EC4); void func_801E7F2C(void) { } -INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E7F34); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801E7FF8(void *a0); + +void func_801E7F34(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801E7FF8, 0); + func_801E7FF8(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,9 +167,74 @@ void func_801E7FF8(void *a0) { INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8034); -INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E805C); -INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8254); +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801E805C; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801E805C; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801E805C(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801E8680[]; + extern u16 D_801E8684[]; + + MATRIX_801EDED4_801E805C m1; + SVECTOR_801EDED4_801E805C svec_in; + SVECTOR_801EDED4_801E805C svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801E8680[t]; + *(s16 *)(param_1 + 0x2E) = D_801E8684[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + + + +u8 func_801E8254(u32 a0) { + if ((u32)(a0 - 0x384) < 0x6E) { + return 0x65; + } + if ((u32)(a0 - 0x64) < 0x1E) { + return 0x28; + } + return 0x29; +} + void func_801E8284(void) { } diff --git a/src/md_SC05_024/md_SC05_024.c b/src/md_SC05_024/md_SC05_024.c index ff1928f594..2efcde2a78 100644 --- a/src/md_SC05_024/md_SC05_024.c +++ b/src/md_SC05_024/md_SC05_024.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_024/nonmatchings/md_SC05_024", D_801ED988); INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDC18); -INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDC80); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EDC80(void *arg0) { + + extern u8 D_801EE4EC[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EE4EC)); + func_80171A1C(arg0); + } +} + void func_801EDCD8(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDD3C); void func_801EDDA4(void) { } -INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDDAC); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EDE70(void *a0); + +void func_801EDDAC(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EDE70, 0); + func_801EDE70(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EDE70(void *a0) { INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDEAC); -INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EDED4); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EDED4(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EE53C[]; + extern u16 D_801EE540[]; + + MATRIX_801EDED4_801EDED4 m1; + SVECTOR_801EDED4_801EDED4 svec_in; + SVECTOR_801EDED4_801EDED4 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EE53C[t]; + *(s16 *)(param_1 + 0x2E) = D_801EE540[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + INCLUDE_ASM("asm/md_SC05_024/nonmatchings/md_SC05_024", func_801EE0CC); diff --git a/src/md_SC05_025/md_SC05_025.c b/src/md_SC05_025/md_SC05_025.c index 46929d3118..e25d336a19 100644 --- a/src/md_SC05_025/md_SC05_025.c +++ b/src/md_SC05_025/md_SC05_025.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_025/nonmatchings/md_SC05_025", D_801ED988); INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDC18); -INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDC80); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EDC80(void *arg0) { + + extern u8 D_801EE9B4[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EE9B4)); + func_80171A1C(arg0); + } +} + void func_801EDCD8(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDD3C); void func_801EDDA4(void) { } -INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDDAC); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EDE70(void *a0); + +void func_801EDDAC(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EDE70, 0); + func_801EDE70(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EDE70(void *a0) { INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDEAC); -INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EDED4); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EDED4(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EEA04[]; + extern u16 D_801EEA08[]; + + MATRIX_801EDED4_801EDED4 m1; + SVECTOR_801EDED4_801EDED4 svec_in; + SVECTOR_801EDED4_801EDED4 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EEA04[t]; + *(s16 *)(param_1 + 0x2E) = D_801EEA08[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + INCLUDE_ASM("asm/md_SC05_025/nonmatchings/md_SC05_025", func_801EE0CC); diff --git a/src/md_SC05_026/md_SC05_026.c b/src/md_SC05_026/md_SC05_026.c index aaeb8bce19..bb38e58d60 100644 --- a/src/md_SC05_026/md_SC05_026.c +++ b/src/md_SC05_026/md_SC05_026.c @@ -90,7 +90,27 @@ void func_801EE060(void) } -INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801EE07C); + + +extern void func_800D2624(void); + +void func_801EE07C(void) { + + extern short D_800B9A02; + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + INCLUDE_RODATA("asm/md_SC05_026/nonmatchings/md_SC05_026", D_801ED988); @@ -178,7 +198,22 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F01F8); INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0220); -INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0288); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801F0288(void *arg0) { + + extern u8 D_801F1A34[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801F1A34)); + func_80171A1C(arg0); + } +} + void func_801F02E0(void) { } @@ -199,7 +234,44 @@ INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0344); void func_801F03AC(void) { } -INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F03B4); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801F0478(void *a0); + +void func_801F03B4(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801F0478, 0); + func_801F0478(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -212,11 +284,75 @@ void func_801F0478(void *a0) { INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F04B4); -INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F04DC); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801F04DC; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801F04DC; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801F04DC(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801F1A84[]; + extern u16 D_801F1A88[]; + + MATRIX_801EDED4_801F04DC m1; + SVECTOR_801EDED4_801F04DC svec_in; + SVECTOR_801EDED4_801F04DC svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801F1A84[t]; + *(s16 *)(param_1 + 0x2E) = D_801F1A88[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F06D4); -INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0714); + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801F0714(void) { + + extern u8 D_800AF040[]; + func_8001ABBC(0, 0, D_800AF040, 0, 0); +} + INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026", func_801F0748); diff --git a/src/md_SC05_027/md_SC05_027.c b/src/md_SC05_027/md_SC05_027.c index adf1c6d65d..e1f98426cf 100644 --- a/src/md_SC05_027/md_SC05_027.c +++ b/src/md_SC05_027/md_SC05_027.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_027/nonmatchings/md_SC05_027", D_801ED988); INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDC2C); -INCLUDE_ASM("asm/md_SC05_027/nonmatchings/md_SC05_027", func_801EDC94); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EDC94(void *arg0) { + + extern u8 D_801EE620[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EE620)); + func_80171A1C(arg0); + } +} + void func_801EDCEC(void) { } diff --git a/src/md_SC05_028/md_SC05_028.c b/src/md_SC05_028/md_SC05_028.c index 3cf921a2de..dfd1d1aa85 100644 --- a/src/md_SC05_028/md_SC05_028.c +++ b/src/md_SC05_028/md_SC05_028.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_028/nonmatchings/md_SC05_028", D_801ED988); INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDC18); -INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDC80); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EDC80(void *arg0) { + + extern u8 D_801EE394[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EE394)); + func_80171A1C(arg0); + } +} + void func_801EDCD8(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDD3C); void func_801EDDA4(void) { } -INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDDAC); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EDE70(void *a0); + +void func_801EDDAC(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EDE70, 0); + func_801EDE70(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EDE70(void *a0) { INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDEAC); -INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EDED4); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EDED4(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EE3E4[]; + extern u16 D_801EE3E8[]; + + MATRIX_801EDED4_801EDED4 m1; + SVECTOR_801EDED4_801EDED4 svec_in; + SVECTOR_801EDED4_801EDED4 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EE3E4[t]; + *(s16 *)(param_1 + 0x2E) = D_801EE3E8[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + INCLUDE_ASM("asm/md_SC05_028/nonmatchings/md_SC05_028", func_801EE0CC); diff --git a/src/md_SC05_029/md_SC05_029.c b/src/md_SC05_029/md_SC05_029.c index 283ae28d18..1513d76350 100644 --- a/src/md_SC05_029/md_SC05_029.c +++ b/src/md_SC05_029/md_SC05_029.c @@ -59,7 +59,22 @@ INCLUDE_RODATA("asm/md_SC05_029/nonmatchings/md_SC05_029", D_801ED988); INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDC18); -INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDC80); + +extern s32 func_80014C54(s32, s32, s32); +extern void func_800D1724(void *); +extern void func_80171A1C(void *); + +void func_801EDC80(void *arg0) { + + extern u8 D_801EE4B8[]; + s32 result; + result = func_80014C54(0, 0, 0x80); + if ((result << 16) != 0) { + func_800D1724(&(*(int *)D_801EE4B8)); + func_80171A1C(arg0); + } +} + void func_801EDCD8(void) { } @@ -80,7 +95,44 @@ INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDD3C); void func_801EDDA4(void) { } -INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDDAC); + +extern void func_8012A018(s32 a0, s32 a1); +extern void func_8012A094(s32 a0); +extern void func_801EDE70(void *a0); + +void func_801EDDAC(void) { + + extern s32 D_80126950; + extern s32 D_80126954; + extern s32 D_8012695C; + extern s16 D_80126968; + extern s16 D_8012696A; + extern s16 D_8012696C; + extern s16 D_80126976; + extern s16 D_80126978; + extern s16 D_8012697A; + extern u8 D_80126948[]; + extern s16 D_801274E8; + extern s16 D_801274EA; + extern s16 D_801274EC; + + D_80126954 = 0x190; + D_80126950 = 0x190; + D_8012695C = 0x82; + D_80126968 = 0xFB1; + D_8012696A = 0x7C7; + D_8012696C = 0; + D_80126976 = 0; + D_80126978 = -0x36; + D_8012697A = 0; + func_8012A018((s32)func_801EDE70, 0); + func_801EDE70(D_80126948); + func_8012A094((s32)D_80126948); + D_801274EA = -0x82; + D_801274E8 = 0; + D_801274EC = -0x1B0; +} + @@ -93,7 +145,62 @@ void func_801EDE70(void *a0) { INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDEAC); -INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EDED4); + +/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ +typedef struct { short m[3][3]; long t[3]; } MATRIX_801EDED4_801EDED4; +typedef struct { short vx, vy, vz, pad; } SVECTOR_801EDED4_801EDED4; + +extern u16 func_80148800(s32 *a0); +extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); +extern s32 func_80012ABC(s32 a0, s32 a1, s32 a2); +extern void func_80049CAC(s32 a0, s32 a1); +extern void func_8012F14C(s32 a0, s32 a1, s32 a2); + +void func_801EDED4(s32 param_1, s16 *param_2) { + + extern s32 D_80126B58; + extern s16 D_801EE508[]; + extern u16 D_801EE50C[]; + + MATRIX_801EDED4_801EDED4 m1; + SVECTOR_801EDED4_801EDED4 svec_in; + SVECTOR_801EDED4_801EDED4 svec_out; + u8 t; + + if (func_80148800(&D_80126B58) & 3) { + t = (*(u8 *)(param_1 + 5) + 1) & 1; + *(u8 *)(param_1 + 5) = t; + *(s32 *)(param_1 + 0xC) = D_801EE508[t]; + *(s16 *)(param_1 + 0x2E) = D_801EE50C[*(u8 *)(param_1 + 5)]; + } + + *(s32 *)(param_1 + 0x8) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x8), (s32)*(s16 *)(param_1 + 0xC), 0xA); + *(s32 *)(param_1 + 0x10) = (s16)func_80012C6C((s32)*(s16 *)(param_1 + 0x10), (s32)*(s16 *)(param_1 + 0x14), 0xA); + *(s16 *)(param_1 + 0x18) = func_80012ABC((s32)*(s16 *)(param_1 + 0x18), (s32)*(s16 *)(param_1 + 0x20), 0xA); + *(s16 *)(param_1 + 0x1A) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1A), (s32)*(s16 *)(param_1 + 0x22), 0xA); + *(s16 *)(param_1 + 0x1C) = func_80012ABC((s32)*(s16 *)(param_1 + 0x1C), (s32)*(s16 *)(param_1 + 0x24), 0xA); + *(s16 *)(param_1 + 0x28) = func_80012C6C((s32)*(s16 *)(param_1 + 0x28), (s32)*(s16 *)(param_1 + 0x2E), 0xA); + *(s16 *)(param_1 + 0x2A) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2A), (s32)*(s16 *)(param_1 + 0x30), 0xA); + *(s16 *)(param_1 + 0x2C) = func_80012C6C((s32)*(s16 *)(param_1 + 0x2C), (s32)*(s16 *)(param_1 + 0x32), 0xA); + + *(s32 *)(param_1 + 0x48) = (s32)*(s16 *)(param_1 + 0x28) + (s32)param_2[0]; + *(s32 *)(param_1 + 0x4C) = (s32)*(s16 *)(param_1 + 0x2A) + (s32)param_2[1]; + *(s32 *)(param_1 + 0x50) = (s32)*(s16 *)(param_1 + 0x2C) + (s32)param_2[2]; + func_80049CAC(param_1 + 0x18, (s32)&m1); + + m1.t[0] = *(s16 *)(param_1 + 0x28) + param_2[0]; + m1.t[1] = *(s16 *)(param_1 + 0x2A) + param_2[1]; + m1.t[2] = *(s16 *)(param_1 + 0x2C) + param_2[2]; + svec_in.vx = 0; + svec_in.vy = 0; + svec_in.vz = *(s32 *)(param_1 + 0x10); + ((void (*)(s32, s32, s32))func_8012F14C)((s32)&m1, (s32)&svec_in, (s32)&svec_out); + + *(s32 *)(param_1 + 0x3C) = (s32)svec_out.vx; + *(s32 *)(param_1 + 0x40) = (s32)svec_out.vy; + *(s32 *)(param_1 + 0x44) = (s32)svec_out.vz; +} + INCLUDE_ASM("asm/md_SC05_029/nonmatchings/md_SC05_029", func_801EE0CC); diff --git a/src/ov_MAIN_012/ov_MAIN_012.c b/src/ov_MAIN_012/ov_MAIN_012.c index 76fc9fe79b..9d966bc2e4 100644 --- a/src/ov_MAIN_012/ov_MAIN_012.c +++ b/src/ov_MAIN_012/ov_MAIN_012.c @@ -25587,7 +25587,27 @@ void func_8017C348(void) } -INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012", func_8017C364); + + +extern void func_800D2624(void); + +void func_8017C364(void) { + + extern short aD800B9A02_8017C364 __asm__("D_800B9A02"); + extern u16 aD80115114_8017C364 __asm__("D_80115114"); + extern u16 aD80115112_8017C364 __asm__("D_80115112"); + u16 v0 = (*(u16 *)&aD800B9A02_8017C364); + u16 v1 = aD80115114_8017C364; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + aD80115112_8017C364++; + } +} + INCLUDE_ASM("asm/ov_MAIN_012/nonmatchings/ov_MAIN_012", func_8017C3BC); diff --git a/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c b/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c index 235e8897cb..b746ae8426 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c @@ -3495,7 +3495,26 @@ INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017BE9C", func_8017D96 INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017BE9C", func_8017DAB4); -INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017BE9C", func_8017DBE0); + + +extern void func_800D2624(void); + +void func_8017DBE0(void) { + + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + extern u32 D_80190248; extern u16 D_8011511A; diff --git a/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c b/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c index 8588b977f8..232b8c02f1 100644 --- a/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c +++ b/src/ov_SC01_006/ov_SC01_006_jr_8017C340.c @@ -3505,7 +3505,26 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_8017C340", func_8017E10 INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_8017C340", func_8017E258); -INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_8017C340", func_8017E384); + + +extern void func_800D2624(void); + +void func_8017E384(void) { + + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + extern void func_8002D4C8(s32 a0, s32 a1); diff --git a/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c b/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c index 2b90f3c802..fb5f1555c5 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c @@ -3490,7 +3490,26 @@ INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8017BE9C", func_8017DA9 INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8017BE9C", func_8017DBEC); -INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8017BE9C", func_8017DD18); + + +extern void func_800D2624(void); + +void func_8017DD18(void) { + + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + extern void func_8002D4C8(s32 a0, s32 a1); diff --git a/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c b/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c index ae1d9d2c84..5f5bfb0e1b 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c @@ -3449,7 +3449,26 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8017BE9C", func_8017D93 INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8017BE9C", func_8017DA8C); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8017BE9C", func_8017DBB8); + + +extern void func_800D2624(void); + +void func_8017DBB8(void) { + + extern u16 D_80115114; + extern u16 D_80115112; + u16 v0 = (*(u16 *)&D_800B9A02); + u16 v1 = D_80115114; + + v0 ^= 0x1; + + if (v1 == v0) { + func_800D2624(); + } else { + D_80115112++; + } +} + extern void func_8002D4C8(s32 a0, s32 a1); diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c b/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c index cd74feddbe..14705c934e 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c @@ -4563,9 +4563,27 @@ void func_80181070(void) { } -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017DF84", func_801810A4); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8017DF84", func_801810D8); + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801810A4(void) { + + extern u8 D_800AEE90[]; + func_8001ABBC(0, 0, D_800AEE90, 0, 0); +} + + + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801810D8(void) { + + extern u8 D_800AEE98[]; + func_8001ABBC(0, 0, D_800AEE98, 0, 0); +} + extern void func_8013CB84(void); extern void func_800D06E8(void); diff --git a/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c b/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c index 07a729204f..858c87e1fd 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c @@ -6152,11 +6152,38 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018261 INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018270C); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_8018278C); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_801827C0); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_jr_8017AE2C", func_801827F4); +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_8018278C(void) { + + extern u8 D_800AF420[]; + func_8001ABBC(0, 0, D_800AF420, 0, 0); +} + + + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801827C0(void) { + + extern u8 D_800AF428[]; + func_8001ABBC(0, 0, D_800AF428, 0, 0); +} + + + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801827F4(void) { + + extern u8 D_800AF430[]; + func_8001ABBC(0, 0, D_800AF430, 0, 0); +} + void func_80182828(void *a0, s32 a1) diff --git a/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c b/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c index d27f61a053..2c43ab5bd6 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c @@ -3670,7 +3670,16 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_jr_8017C8D0", func_8018184 void func_801819C4(void) { } -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_jr_8017C8D0", func_801819CC); + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_801819CC(void) { + + extern u8 D_800AF568[]; + func_8001ABBC(0, 0, D_800AF568, 0, 0); +} + extern s16 D_8019F070; void func_80181A00(void) { diff --git a/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c b/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c index d64bf3d76b..d7ab21131a 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c @@ -4544,6 +4544,15 @@ INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8017AE2C", func_80181E5 INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8017AE2C", func_80181EEC); -INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8017AE2C", func_80181F40); + + +extern void func_8001ABBC(u32, u32, void *, u32, u32); + +void func_80181F40(void) { + + extern u8 D_800AF608[]; + func_8001ABBC(0, 0, D_800AF608, 0, 0); +} +