mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-06 01:04:13 -04:00
feat(phase-25): T5b batch-1 COMPLETE — continuation +541 fns (fleet 72.02->72.18%)
- batch-1 cheap tier (83) now 100% drafted: the 29-continuation recovered via resumeFromRunId (9 session-cap failures re-run, 20 cached-replay, 0 errors). - 22/29 -O2 match_one-MATCH; gate banked 8 clean (main 3, _a 2, _after 3) + family_sweep +533 siblings across 133 overlays (5 exemplars, ~0 tokens). - R22 clean-fleet 136/136; dedup-check 1813/0; 0 NON_MATCHING (G4). - backlog: func_801457A4 (MATCH but -O0-only -> batch-3), func_80135004/8013AD38 (need the T7 caller-decl reconcile), func_80168828 (close=8, permuter fuel). - frontier map now 93 exemplars measured (.run/t5_frontier.jsonl). - docs/gen3-parking-lot.md: captured the Gen3 native-port recomp architecture (PsyQ-SDK HLE boundary on Vulkan; recomp-front-end + decomp-incrementally hybrid). - session totals: fleet 71.36 -> 72.18% (+2820 fns). Cheap tier done; giants next (hold).
This commit is contained in:
+2775
-2759
File diff suppressed because it is too large
Load Diff
@@ -75,3 +75,75 @@ This is speculation + a survey, not committed RE. The load-bearing new fact —
|
||||
data** — is byte-verified (real `jal` sites). Everything downstream (which blob, stock-vs-variant, the
|
||||
exporter, Musashi's anim) is **unstarted** and belongs to a future Gen3 effort. The decomp is the enabler:
|
||||
the matched renderer + the located call sites are the format spec.
|
||||
|
||||
---
|
||||
|
||||
# Native PC port — the recomp architecture (PsyQ→Vulkan HLE boundary)
|
||||
|
||||
> Spitball with Drew, 2026-07-08 (during a T5b wait). The fleshed-out "native recomp / PC port" parking-lot
|
||||
> item. **PARKED — Gen3.** Not committed; captured while fresh (R30). The key architectural insight is the
|
||||
> **PsyQ-SDK HLE boundary**, which is what makes a PS1 port tractable rather than "write another emulator."
|
||||
|
||||
## The idea
|
||||
A **native PC build** of BFM via a **static-recomp front-end** for the game's MIPS code + a **PsyQ-SDK
|
||||
HLE layer** on modern backends (**Vulkan** for the GPU, an audio lib for the SPU, native FS for the CD).
|
||||
Distinct from the asset-export axis above (that interprets DATA; this makes the CODE run natively).
|
||||
|
||||
## The key insight — HLE the SDK API, not the hardware
|
||||
A naïve PS1 recomp is hard because you end up re-emulating the GPU at the command/register level (the
|
||||
emulator problem). **But BFM never touches GPU registers — it goes through the PsyQ SDK** (libgpu
|
||||
`GsSortObject`/`DrawOTag`, libgte `RotTransPers`, libspu, libcd). The SDK is a **finite, documented API**,
|
||||
and **we've already isolated it byte-exact** (Phase 7/8 linked libgpu/libgte/libspu/libcd from the real
|
||||
PsyQ 4.0 objects; we know precisely which addresses are SDK vs game code). So reimplement the **API**, not
|
||||
the **hardware** — Wine/Proton-shaped, not emulator-shaped.
|
||||
|
||||
**Our decomp already draws the exact boundary:** every function is partitioned "game code (matched C)" vs
|
||||
"PsyQ library (linked object)." That split **IS** the "translate vs HLE" partition — Phase 7/8 hands the
|
||||
port its function partition for free. So: **game code → static-recomp** (or use our decomp'd C where it
|
||||
exists); **PsyQ SDK → replace with the Vulkan/audio/FS HLE layer** (don't translate it).
|
||||
|
||||
## Three architectures (and the winning hybrid)
|
||||
- **A — full static recomp** (N64Recomp-style): translate ALL MIPS + emulate the GPU at command level. Hard;
|
||||
re-does emulator work.
|
||||
- **B — PsyQ-HLE port (this idea):** game code recomp'd/decomp'd, boundary cut at the SDK, HLE'd on Vulkan.
|
||||
The sweet spot.
|
||||
- **C — decomp port:** compile our matched C native + a PsyQ shim — converges with B (both need a PsyQ
|
||||
reimplementation).
|
||||
- **Hybrid (the winning move):** a recomp front-end boots a native build **far sooner than a 100% decomp**,
|
||||
then the **decomp incrementally replaces** recomp'd functions with readable C (recomp-now, decomp-forever).
|
||||
This is the N64 world's proven pattern.
|
||||
|
||||
## Hard parts (honest)
|
||||
- **Overlays — the #1 PS1 gotcha, and BFM is overlay-heavy** (134 overlays streamed to `0x80128158`). Static
|
||||
recomp hates "same address = different code over time." N64Recomp handles it by recompiling each overlay
|
||||
separately + dispatching on which is loaded — and **we've already mapped every overlay boundary + the
|
||||
loader state machine** (Phase 3), so this is derisked *for us specifically*. This is the biggest reason our
|
||||
recomp is more feasible than a cold one.
|
||||
- **GPU HLE (biggest single chunk):** walk the OT in `DrawOTag`, translate each primitive (`POLY_FT4`, …) to
|
||||
Vulkan. Choose fidelity — replicate PS1 quirks (affine warp, OT painter's-algo, 15-bit dither) *or* "fix"
|
||||
them (perspective-correct, hi-res). DuckStation's hardware renderer = a *reference* for the mapping.
|
||||
- **GTE:** mostly free via libgte HLE, **except** BFM uses inline GTE macros (`gte_rtps` → raw cop2; why our
|
||||
import auto-detects GTEMAC + `gte_macros.inc`) — those cop2 ops land in recomp'd game code → still need a
|
||||
small **software GTE** (fully documented, a few hundred lines).
|
||||
- **SPU + CD:** HLE libspu (SEQ/VAB) + libcd → read our extracted assets. The CD loader is **already RE'd**
|
||||
(Phase 3), so the streaming state machine maps to a file/event model.
|
||||
|
||||
## The gap + the reusability sleeper
|
||||
- **No mature PS1→PC static recompiler exists** the way N64Recomp does (the PS1 world went the emulator +
|
||||
per-game-decomp routes). Drew's own **psxrecomp** (rocky v1–v3 post-mortem) is the closest prior art.
|
||||
⚠️ **Verify via web before committing** (X2/R17) — check for recent experimental MIPS-R3000/PS1 static-BT
|
||||
efforts or anyone extending N64Recomp's `RabbitizerLib`/`N64ModernRuntime` toward R3000.
|
||||
- **Reusability:** because ~every PS1 game used PsyQ, a **PsyQ-HLE + MIPS-R3000-recomp toolkit generalizes to
|
||||
the whole PsyQ library** — "N64Recomp for PS1," a genuinely new community tool + a Gen2-public-flip hook.
|
||||
|
||||
## Sequencing
|
||||
Gen3, parked — do NOT fork Gen2 focus. This capture **is** the architecture decision to revisit at Gen3:
|
||||
*port architecture = PsyQ-SDK HLE boundary on Vulkan; recomp front-end for early boot, decomp replaces
|
||||
incrementally; overlays per-N64Recomp; reuses the Phase-7/8 SDK partition + the Phase-3 overlay/loader map.*
|
||||
|
||||
## Also worth noting — C++ vs C# (from the same discussion)
|
||||
- **C++** = natural port target: closest to the decomp's C (structs/unions/pointer-math/manual-memory carry
|
||||
over ~mechanically), best perf, direct graphics/audio interop. Port native first, modernize incrementally.
|
||||
- **C#** = a *reimplementation* character (pointer arithmetic/unions fight the managed model) using the decomp
|
||||
as an executable spec/oracle — the Unity-remake route. Valid, more freedom, much more work.
|
||||
- The decomp enables both; C++ is pragmatic, C# is the "remake."
|
||||
|
||||
+137
-137
@@ -3,148 +3,148 @@
|
||||
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
|
||||
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
|
||||
|
||||
FLEET REAL substantive : 246433 (of which dedup-shared 223275 via 1813 groups / 223725 instances)
|
||||
FLEET REAL substantive : 246974 (of which dedup-shared 223275 via 1813 groups / 223725 instances)
|
||||
FLEET LINKED PsyQ objs : 959
|
||||
FLEET byte-identical : 247962 / 344306 = 72.02% (REAL+LINKED+empties)
|
||||
FLEET byte-identical : 248503 / 344306 = 72.18% (REAL+LINKED+empties)
|
||||
FLEET NON_MATCHING : 7 (0 in any default build — G4)
|
||||
FLEET INCLUDE_ASM stubs : 96337
|
||||
FLEET INCLUDE_ASM stubs : 95796
|
||||
FLEET matchable : 344306
|
||||
|
||||
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
|
||||
| resident | 123 | 0 | 0 | 125 | 146 | 85.6% |
|
||||
| ov_SC01_000 | 1832 | 1669 | 0 | 1832 | 2407 | 76.1% |
|
||||
| ov_SC01_001 | 1829 | 1669 | 0 | 1831 | 2471 | 74.1% |
|
||||
| ov_SC01_004 | 1822 | 1660 | 0 | 1823 | 2418 | 75.4% |
|
||||
| ov_SC01_005 | 1846 | 1682 | 0 | 1846 | 2508 | 73.6% |
|
||||
| ov_SC01_006 | 1845 | 1682 | 0 | 1845 | 2508 | 73.6% |
|
||||
| ov_SC01_008 | 1823 | 1660 | 0 | 1825 | 2430 | 75.1% |
|
||||
| ov_SC01_009 | 1843 | 1661 | 0 | 1844 | 2512 | 73.4% |
|
||||
| ov_SC01_074 | 1823 | 1661 | 0 | 1825 | 2429 | 75.1% |
|
||||
| ov_SC01_077 | 2210 | 1624 | 0 | 2212 | 2586 | 85.5% |
|
||||
| ov_SC01_080 | 1841 | 1664 | 0 | 1841 | 2517 | 73.1% |
|
||||
| ov_SC01_084 | 1844 | 1664 | 0 | 1849 | 2583 | 71.6% |
|
||||
| ov_SC02_000 | 1861 | 1699 | 0 | 1861 | 2688 | 69.2% |
|
||||
| ov_SC02_003 | 1861 | 1699 | 0 | 1861 | 2688 | 69.2% |
|
||||
| ov_SC02_004 | 1827 | 1664 | 0 | 1827 | 2405 | 76.0% |
|
||||
| ov_SC02_005 | 1886 | 1660 | 0 | 1896 | 2932 | 64.7% |
|
||||
| ov_SC02_011 | 1867 | 1667 | 0 | 1878 | 2898 | 64.8% |
|
||||
| ov_SC02_015 | 1828 | 1666 | 0 | 1828 | 2418 | 75.6% |
|
||||
| ov_SC02_016 | 1832 | 1666 | 0 | 1835 | 2550 | 72.0% |
|
||||
| ov_SC02_017 | 1851 | 1666 | 0 | 1859 | 2737 | 67.9% |
|
||||
| ov_SC02_021 | 1831 | 1666 | 0 | 1831 | 2441 | 75.0% |
|
||||
| ov_SC02_026 | 1835 | 1664 | 0 | 1841 | 2577 | 71.4% |
|
||||
| ov_SC02_027 | 1844 | 1664 | 0 | 1853 | 2697 | 68.7% |
|
||||
| ov_SC02_028 | 1852 | 1664 | 0 | 1862 | 2706 | 68.8% |
|
||||
| ov_SC02_031 | 1842 | 1665 | 0 | 1847 | 2567 | 72.0% |
|
||||
| ov_SC02_035 | 1833 | 1664 | 0 | 1836 | 2525 | 72.7% |
|
||||
| ov_SC02_039 | 1824 | 1664 | 0 | 1824 | 2420 | 75.4% |
|
||||
| ov_SC02_041 | 1831 | 1664 | 0 | 1834 | 2565 | 71.5% |
|
||||
| ov_SC03_001 | 1884 | 1665 | 0 | 1901 | 2874 | 66.1% |
|
||||
| ov_SC03_002 | 1850 | 1669 | 0 | 1865 | 2636 | 70.8% |
|
||||
| ov_SC03_003 | 1822 | 1664 | 0 | 1823 | 2427 | 75.1% |
|
||||
| ov_SC03_006 | 1863 | 1670 | 0 | 1872 | 2772 | 67.5% |
|
||||
| ov_SC03_007 | 1838 | 1664 | 0 | 1842 | 2628 | 70.1% |
|
||||
| ov_SC03_010 | 1832 | 1664 | 0 | 1832 | 2474 | 74.1% |
|
||||
| ov_SC03_011 | 1828 | 1664 | 0 | 1834 | 2532 | 72.4% |
|
||||
| ov_SC03_012 | 1823 | 1664 | 0 | 1824 | 2410 | 75.7% |
|
||||
| ov_SC03_013 | 1831 | 1664 | 0 | 1831 | 2497 | 73.3% |
|
||||
| ov_SC03_014 | 1853 | 1689 | 0 | 1853 | 2690 | 68.9% |
|
||||
| ov_SC03_015 | 1859 | 1689 | 0 | 1859 | 2690 | 69.1% |
|
||||
| ov_SC03_023 | 1825 | 1664 | 0 | 1826 | 2439 | 74.9% |
|
||||
| ov_SC03_024 | 1855 | 1669 | 0 | 1862 | 2646 | 70.4% |
|
||||
| ov_SC03_028 | 1846 | 1664 | 0 | 1850 | 2669 | 69.3% |
|
||||
| ov_SC03_029 | 1832 | 1666 | 0 | 1842 | 2649 | 69.5% |
|
||||
| ov_SC03_030 | 1832 | 1668 | 0 | 1834 | 2500 | 73.4% |
|
||||
| ov_SC03_031 | 1827 | 1664 | 0 | 1831 | 2519 | 72.7% |
|
||||
| ov_SC03_089 | 1837 | 1664 | 0 | 1844 | 2586 | 71.3% |
|
||||
| ov_SC03_090 | 1838 | 1664 | 0 | 1846 | 2630 | 70.2% |
|
||||
| ov_SC03_091 | 1837 | 1664 | 0 | 1845 | 2645 | 69.8% |
|
||||
| ov_SC03_092 | 1837 | 1664 | 0 | 1849 | 2592 | 71.3% |
|
||||
| ov_SC03_093 | 1834 | 1664 | 0 | 1838 | 2568 | 71.6% |
|
||||
| ov_SC03_094 | 1828 | 1664 | 0 | 1834 | 2581 | 71.1% |
|
||||
| ov_SC03_095 | 1826 | 1664 | 0 | 1829 | 2479 | 73.8% |
|
||||
| ov_SC03_096 | 1829 | 1664 | 0 | 1832 | 2470 | 74.2% |
|
||||
| ov_SC03_097 | 1833 | 1664 | 0 | 1840 | 2608 | 70.6% |
|
||||
| ov_SC03_098 | 1829 | 1664 | 0 | 1832 | 2546 | 72.0% |
|
||||
| ov_SC03_099 | 1826 | 1664 | 0 | 1829 | 2509 | 72.9% |
|
||||
| ov_SC03_100 | 1828 | 1664 | 0 | 1832 | 2544 | 72.0% |
|
||||
| ov_SC03_101 | 1830 | 1664 | 0 | 1834 | 2533 | 72.4% |
|
||||
| ov_SC03_102 | 1830 | 1664 | 0 | 1833 | 2497 | 73.4% |
|
||||
| ov_SC03_103 | 1829 | 1666 | 0 | 1832 | 2515 | 72.8% |
|
||||
| ov_SC03_104 | 1840 | 1664 | 0 | 1847 | 2621 | 70.5% |
|
||||
| ov_SC03_105 | 1834 | 1664 | 0 | 1841 | 2602 | 70.8% |
|
||||
| ov_SC03_108 | 1822 | 1664 | 0 | 1822 | 2448 | 74.4% |
|
||||
| ov_SC03_109 | 1823 | 1664 | 0 | 1825 | 2428 | 75.2% |
|
||||
| ov_SC03_110 | 1825 | 1664 | 0 | 1825 | 2473 | 73.8% |
|
||||
| ov_SC03_111 | 1830 | 1664 | 0 | 1833 | 2515 | 72.9% |
|
||||
| ov_SC03_112 | 1828 | 1666 | 0 | 1830 | 2531 | 72.3% |
|
||||
| ov_SC03_113 | 1825 | 1666 | 0 | 1828 | 2473 | 73.9% |
|
||||
| ov_SC03_114 | 1821 | 1664 | 0 | 1823 | 2419 | 75.4% |
|
||||
| ov_SC03_115 | 1829 | 1664 | 0 | 1831 | 2477 | 73.9% |
|
||||
| ov_SC03_116 | 1827 | 1664 | 0 | 1830 | 2443 | 74.9% |
|
||||
| ov_SC03_117 | 1827 | 1664 | 0 | 1833 | 2562 | 71.5% |
|
||||
| ov_SC03_118 | 1855 | 1688 | 0 | 1856 | 2690 | 69.0% |
|
||||
| ov_SC03_119 | 1850 | 1688 | 0 | 1851 | 2690 | 68.8% |
|
||||
| ov_SC03_121 | 1827 | 1664 | 0 | 1830 | 2464 | 74.3% |
|
||||
| ov_SC03_124 | 1851 | 1660 | 0 | 1871 | 2746 | 68.1% |
|
||||
| ov_SC03_125 | 1833 | 1664 | 0 | 1845 | 2593 | 71.2% |
|
||||
| ov_SC03_126 | 1824 | 1666 | 0 | 1824 | 2427 | 75.2% |
|
||||
| ov_SC04_000 | 1833 | 1668 | 0 | 1842 | 2551 | 72.2% |
|
||||
| ov_SC04_002 | 1837 | 1664 | 0 | 1841 | 2641 | 69.7% |
|
||||
| ov_SC04_003 | 1825 | 1664 | 0 | 1829 | 2507 | 73.0% |
|
||||
| ov_SC04_004 | 1832 | 1664 | 0 | 1834 | 2563 | 71.6% |
|
||||
| ov_SC04_005 | 1834 | 1664 | 0 | 1840 | 2617 | 70.3% |
|
||||
| ov_SC04_006 | 1823 | 1664 | 0 | 1825 | 2458 | 74.2% |
|
||||
| ov_SC04_007 | 1833 | 1664 | 0 | 1837 | 2574 | 71.4% |
|
||||
| ov_SC04_008 | 1823 | 1664 | 0 | 1823 | 2419 | 75.4% |
|
||||
| ov_SC04_009 | 1826 | 1664 | 0 | 1829 | 2445 | 74.8% |
|
||||
| ov_SC04_010 | 1826 | 1664 | 0 | 1827 | 2423 | 75.4% |
|
||||
| ov_SC04_011 | 1849 | 1664 | 0 | 1855 | 2808 | 66.1% |
|
||||
| ov_SC04_012 | 1823 | 1664 | 0 | 1824 | 2424 | 75.2% |
|
||||
| ov_SC04_015 | 1843 | 1665 | 0 | 1854 | 2616 | 70.9% |
|
||||
| ov_SC04_016 | 1821 | 1664 | 0 | 1823 | 2444 | 74.6% |
|
||||
| ov_SC04_018 | 1869 | 1699 | 0 | 1869 | 2862 | 65.3% |
|
||||
| ov_SC04_019 | 1874 | 1699 | 0 | 1874 | 2862 | 65.5% |
|
||||
| ov_SC04_020 | 1836 | 1664 | 0 | 1848 | 2572 | 71.9% |
|
||||
| ov_SC04_021 | 1822 | 1666 | 0 | 1822 | 2427 | 75.1% |
|
||||
| ov_SC05_000 | 1826 | 1668 | 0 | 1829 | 2426 | 75.4% |
|
||||
| ov_SC05_001 | 1826 | 1664 | 0 | 1831 | 2579 | 71.0% |
|
||||
| ov_SC05_002 | 1823 | 1664 | 0 | 1826 | 2447 | 74.6% |
|
||||
| ov_SC05_003 | 1824 | 1664 | 0 | 1825 | 2486 | 73.4% |
|
||||
| ov_SC05_004 | 1824 | 1664 | 0 | 1826 | 2469 | 74.0% |
|
||||
| ov_SC05_005 | 1825 | 1664 | 0 | 1826 | 2496 | 73.2% |
|
||||
| ov_SC05_006 | 1822 | 1664 | 0 | 1822 | 2434 | 74.9% |
|
||||
| ov_SC05_007 | 1827 | 1664 | 0 | 1832 | 2487 | 73.7% |
|
||||
| ov_SC05_008 | 1847 | 1664 | 0 | 1849 | 2548 | 72.6% |
|
||||
| ov_SC05_009 | 1827 | 1664 | 0 | 1831 | 2442 | 75.0% |
|
||||
| ov_SC05_010 | 1835 | 1664 | 0 | 1839 | 2593 | 70.9% |
|
||||
| ov_SC05_011 | 1822 | 1664 | 0 | 1823 | 2413 | 75.5% |
|
||||
| ov_SC05_017 | 1854 | 1661 | 0 | 1865 | 2847 | 65.5% |
|
||||
| ov_SC05_018 | 1845 | 1664 | 0 | 1858 | 2678 | 69.4% |
|
||||
| ov_SC05_019 | 1823 | 1666 | 0 | 1823 | 2427 | 75.1% |
|
||||
| ov_SC06_000 | 1857 | 1673 | 0 | 1860 | 2696 | 69.0% |
|
||||
| ov_SC06_006 | 1830 | 1664 | 0 | 1831 | 2516 | 72.8% |
|
||||
| ov_SC06_008 | 1835 | 1666 | 0 | 1841 | 2546 | 72.3% |
|
||||
| ov_SC06_010 | 1834 | 1664 | 0 | 1839 | 2522 | 72.9% |
|
||||
| ov_SC06_011 | 1826 | 1664 | 0 | 1830 | 2473 | 74.0% |
|
||||
| ov_SC06_013 | 1825 | 1664 | 0 | 1826 | 2429 | 75.2% |
|
||||
| ov_SC06_014 | 1827 | 1664 | 0 | 1829 | 2457 | 74.4% |
|
||||
| ov_SC06_015 | 1824 | 1664 | 0 | 1824 | 2425 | 75.2% |
|
||||
| ov_SC06_016 | 1835 | 1664 | 0 | 1837 | 2554 | 71.9% |
|
||||
| ov_SC06_018 | 1834 | 1667 | 0 | 1841 | 2670 | 69.0% |
|
||||
| ov_SC06_020 | 1828 | 1666 | 0 | 1829 | 2523 | 72.5% |
|
||||
| ov_SC06_022 | 1834 | 1664 | 0 | 1842 | 2647 | 69.6% |
|
||||
| ov_SC06_024 | 1839 | 1664 | 0 | 1845 | 2672 | 69.0% |
|
||||
| ov_SC06_025 | 1832 | 1664 | 0 | 1837 | 2577 | 71.3% |
|
||||
| ov_SC06_027 | 1820 | 1664 | 0 | 1821 | 2412 | 75.5% |
|
||||
| ov_SC06_029 | 1848 | 1664 | 0 | 1860 | 2667 | 69.7% |
|
||||
| ov_SC06_030 | 1826 | 1664 | 0 | 1826 | 2461 | 74.2% |
|
||||
| ov_SC06_032 | 1827 | 1665 | 0 | 1834 | 2663 | 68.9% |
|
||||
| ov_SC06_033 | 1835 | 1665 | 0 | 1842 | 2636 | 69.9% |
|
||||
| ov_SC07_000 | 1838 | 1668 | 0 | 1840 | 2526 | 72.8% |
|
||||
| ov_SC07_001 | 1827 | 1664 | 0 | 1829 | 2459 | 74.4% |
|
||||
| ov_SC07_002 | 1841 | 1664 | 0 | 1845 | 2584 | 71.4% |
|
||||
| ov_SC07_008 | 1821 | 1664 | 0 | 1821 | 2390 | 76.2% |
|
||||
| ov_SC07_009 | 1829 | 1664 | 0 | 1831 | 2434 | 75.2% |
|
||||
| ov_SC01_000 | 1836 | 1669 | 0 | 1836 | 2407 | 76.3% |
|
||||
| ov_SC01_001 | 1833 | 1669 | 0 | 1835 | 2471 | 74.3% |
|
||||
| ov_SC01_004 | 1826 | 1660 | 0 | 1827 | 2418 | 75.6% |
|
||||
| ov_SC01_005 | 1850 | 1682 | 0 | 1850 | 2508 | 73.8% |
|
||||
| ov_SC01_006 | 1849 | 1682 | 0 | 1849 | 2508 | 73.7% |
|
||||
| ov_SC01_008 | 1827 | 1660 | 0 | 1829 | 2430 | 75.3% |
|
||||
| ov_SC01_009 | 1847 | 1661 | 0 | 1848 | 2512 | 73.6% |
|
||||
| ov_SC01_074 | 1827 | 1661 | 0 | 1829 | 2429 | 75.3% |
|
||||
| ov_SC01_077 | 2218 | 1624 | 0 | 2220 | 2586 | 85.8% |
|
||||
| ov_SC01_080 | 1845 | 1664 | 0 | 1845 | 2517 | 73.3% |
|
||||
| ov_SC01_084 | 1848 | 1664 | 0 | 1853 | 2583 | 71.7% |
|
||||
| ov_SC02_000 | 1865 | 1699 | 0 | 1865 | 2688 | 69.4% |
|
||||
| ov_SC02_003 | 1865 | 1699 | 0 | 1865 | 2688 | 69.4% |
|
||||
| ov_SC02_004 | 1831 | 1664 | 0 | 1831 | 2405 | 76.1% |
|
||||
| ov_SC02_005 | 1890 | 1660 | 0 | 1900 | 2932 | 64.8% |
|
||||
| ov_SC02_011 | 1871 | 1667 | 0 | 1882 | 2898 | 64.9% |
|
||||
| ov_SC02_015 | 1832 | 1666 | 0 | 1832 | 2418 | 75.8% |
|
||||
| ov_SC02_016 | 1836 | 1666 | 0 | 1839 | 2550 | 72.1% |
|
||||
| ov_SC02_017 | 1855 | 1666 | 0 | 1863 | 2737 | 68.1% |
|
||||
| ov_SC02_021 | 1835 | 1666 | 0 | 1835 | 2441 | 75.2% |
|
||||
| ov_SC02_026 | 1839 | 1664 | 0 | 1845 | 2577 | 71.6% |
|
||||
| ov_SC02_027 | 1848 | 1664 | 0 | 1857 | 2697 | 68.9% |
|
||||
| ov_SC02_028 | 1856 | 1664 | 0 | 1866 | 2706 | 69.0% |
|
||||
| ov_SC02_031 | 1846 | 1665 | 0 | 1851 | 2567 | 72.1% |
|
||||
| ov_SC02_035 | 1837 | 1664 | 0 | 1840 | 2525 | 72.9% |
|
||||
| ov_SC02_039 | 1828 | 1664 | 0 | 1828 | 2420 | 75.5% |
|
||||
| ov_SC02_041 | 1835 | 1664 | 0 | 1838 | 2565 | 71.7% |
|
||||
| ov_SC03_001 | 1888 | 1665 | 0 | 1905 | 2874 | 66.3% |
|
||||
| ov_SC03_002 | 1854 | 1669 | 0 | 1869 | 2636 | 70.9% |
|
||||
| ov_SC03_003 | 1826 | 1664 | 0 | 1827 | 2427 | 75.3% |
|
||||
| ov_SC03_006 | 1867 | 1670 | 0 | 1876 | 2772 | 67.7% |
|
||||
| ov_SC03_007 | 1842 | 1664 | 0 | 1846 | 2628 | 70.2% |
|
||||
| ov_SC03_010 | 1836 | 1664 | 0 | 1836 | 2474 | 74.2% |
|
||||
| ov_SC03_011 | 1832 | 1664 | 0 | 1838 | 2532 | 72.6% |
|
||||
| ov_SC03_012 | 1827 | 1664 | 0 | 1828 | 2410 | 75.9% |
|
||||
| ov_SC03_013 | 1835 | 1664 | 0 | 1835 | 2497 | 73.5% |
|
||||
| ov_SC03_014 | 1857 | 1689 | 0 | 1857 | 2690 | 69.0% |
|
||||
| ov_SC03_015 | 1863 | 1689 | 0 | 1863 | 2690 | 69.3% |
|
||||
| ov_SC03_023 | 1829 | 1664 | 0 | 1830 | 2439 | 75.0% |
|
||||
| ov_SC03_024 | 1859 | 1669 | 0 | 1866 | 2646 | 70.5% |
|
||||
| ov_SC03_028 | 1850 | 1664 | 0 | 1854 | 2669 | 69.5% |
|
||||
| ov_SC03_029 | 1836 | 1666 | 0 | 1846 | 2649 | 69.7% |
|
||||
| ov_SC03_030 | 1837 | 1668 | 0 | 1839 | 2500 | 73.6% |
|
||||
| ov_SC03_031 | 1831 | 1664 | 0 | 1835 | 2519 | 72.8% |
|
||||
| ov_SC03_089 | 1841 | 1664 | 0 | 1848 | 2586 | 71.5% |
|
||||
| ov_SC03_090 | 1842 | 1664 | 0 | 1850 | 2630 | 70.3% |
|
||||
| ov_SC03_091 | 1841 | 1664 | 0 | 1849 | 2645 | 69.9% |
|
||||
| ov_SC03_092 | 1841 | 1664 | 0 | 1853 | 2592 | 71.5% |
|
||||
| ov_SC03_093 | 1838 | 1664 | 0 | 1842 | 2568 | 71.7% |
|
||||
| ov_SC03_094 | 1832 | 1664 | 0 | 1838 | 2581 | 71.2% |
|
||||
| ov_SC03_095 | 1830 | 1664 | 0 | 1833 | 2479 | 73.9% |
|
||||
| ov_SC03_096 | 1833 | 1664 | 0 | 1836 | 2470 | 74.3% |
|
||||
| ov_SC03_097 | 1837 | 1664 | 0 | 1844 | 2608 | 70.7% |
|
||||
| ov_SC03_098 | 1833 | 1664 | 0 | 1836 | 2546 | 72.1% |
|
||||
| ov_SC03_099 | 1830 | 1664 | 0 | 1833 | 2509 | 73.1% |
|
||||
| ov_SC03_100 | 1832 | 1664 | 0 | 1836 | 2544 | 72.2% |
|
||||
| ov_SC03_101 | 1834 | 1664 | 0 | 1838 | 2533 | 72.6% |
|
||||
| ov_SC03_102 | 1834 | 1664 | 0 | 1837 | 2497 | 73.6% |
|
||||
| ov_SC03_103 | 1833 | 1666 | 0 | 1836 | 2515 | 73.0% |
|
||||
| ov_SC03_104 | 1844 | 1664 | 0 | 1851 | 2621 | 70.6% |
|
||||
| ov_SC03_105 | 1838 | 1664 | 0 | 1845 | 2602 | 70.9% |
|
||||
| ov_SC03_108 | 1826 | 1664 | 0 | 1826 | 2448 | 74.6% |
|
||||
| ov_SC03_109 | 1827 | 1664 | 0 | 1829 | 2428 | 75.3% |
|
||||
| ov_SC03_110 | 1829 | 1664 | 0 | 1829 | 2473 | 74.0% |
|
||||
| ov_SC03_111 | 1834 | 1664 | 0 | 1837 | 2515 | 73.0% |
|
||||
| ov_SC03_112 | 1832 | 1666 | 0 | 1834 | 2531 | 72.5% |
|
||||
| ov_SC03_113 | 1829 | 1666 | 0 | 1832 | 2473 | 74.1% |
|
||||
| ov_SC03_114 | 1825 | 1664 | 0 | 1827 | 2419 | 75.5% |
|
||||
| ov_SC03_115 | 1833 | 1664 | 0 | 1835 | 2477 | 74.1% |
|
||||
| ov_SC03_116 | 1831 | 1664 | 0 | 1834 | 2443 | 75.1% |
|
||||
| ov_SC03_117 | 1831 | 1664 | 0 | 1837 | 2562 | 71.7% |
|
||||
| ov_SC03_118 | 1859 | 1688 | 0 | 1860 | 2690 | 69.1% |
|
||||
| ov_SC03_119 | 1854 | 1688 | 0 | 1855 | 2690 | 69.0% |
|
||||
| ov_SC03_121 | 1831 | 1664 | 0 | 1834 | 2464 | 74.4% |
|
||||
| ov_SC03_124 | 1855 | 1660 | 0 | 1875 | 2746 | 68.3% |
|
||||
| ov_SC03_125 | 1837 | 1664 | 0 | 1849 | 2593 | 71.3% |
|
||||
| ov_SC03_126 | 1828 | 1666 | 0 | 1828 | 2427 | 75.3% |
|
||||
| ov_SC04_000 | 1837 | 1668 | 0 | 1846 | 2551 | 72.4% |
|
||||
| ov_SC04_002 | 1841 | 1664 | 0 | 1845 | 2641 | 69.9% |
|
||||
| ov_SC04_003 | 1829 | 1664 | 0 | 1833 | 2507 | 73.1% |
|
||||
| ov_SC04_004 | 1836 | 1664 | 0 | 1838 | 2563 | 71.7% |
|
||||
| ov_SC04_005 | 1838 | 1664 | 0 | 1844 | 2617 | 70.5% |
|
||||
| ov_SC04_006 | 1827 | 1664 | 0 | 1829 | 2458 | 74.4% |
|
||||
| ov_SC04_007 | 1837 | 1664 | 0 | 1841 | 2574 | 71.5% |
|
||||
| ov_SC04_008 | 1827 | 1664 | 0 | 1827 | 2419 | 75.5% |
|
||||
| ov_SC04_009 | 1830 | 1664 | 0 | 1833 | 2445 | 75.0% |
|
||||
| ov_SC04_010 | 1830 | 1664 | 0 | 1831 | 2423 | 75.6% |
|
||||
| ov_SC04_011 | 1853 | 1664 | 0 | 1859 | 2808 | 66.2% |
|
||||
| ov_SC04_012 | 1827 | 1664 | 0 | 1828 | 2424 | 75.4% |
|
||||
| ov_SC04_015 | 1847 | 1665 | 0 | 1858 | 2616 | 71.0% |
|
||||
| ov_SC04_016 | 1825 | 1664 | 0 | 1827 | 2444 | 74.8% |
|
||||
| ov_SC04_018 | 1873 | 1699 | 0 | 1873 | 2862 | 65.4% |
|
||||
| ov_SC04_019 | 1878 | 1699 | 0 | 1878 | 2862 | 65.6% |
|
||||
| ov_SC04_020 | 1840 | 1664 | 0 | 1852 | 2572 | 72.0% |
|
||||
| ov_SC04_021 | 1826 | 1666 | 0 | 1826 | 2427 | 75.2% |
|
||||
| ov_SC05_000 | 1830 | 1668 | 0 | 1833 | 2426 | 75.6% |
|
||||
| ov_SC05_001 | 1830 | 1664 | 0 | 1835 | 2579 | 71.2% |
|
||||
| ov_SC05_002 | 1827 | 1664 | 0 | 1830 | 2447 | 74.8% |
|
||||
| ov_SC05_003 | 1828 | 1664 | 0 | 1829 | 2486 | 73.6% |
|
||||
| ov_SC05_004 | 1828 | 1664 | 0 | 1830 | 2469 | 74.1% |
|
||||
| ov_SC05_005 | 1829 | 1664 | 0 | 1830 | 2496 | 73.3% |
|
||||
| ov_SC05_006 | 1826 | 1664 | 0 | 1826 | 2434 | 75.0% |
|
||||
| ov_SC05_007 | 1831 | 1664 | 0 | 1836 | 2487 | 73.8% |
|
||||
| ov_SC05_008 | 1851 | 1664 | 0 | 1853 | 2548 | 72.7% |
|
||||
| ov_SC05_009 | 1831 | 1664 | 0 | 1835 | 2442 | 75.1% |
|
||||
| ov_SC05_010 | 1839 | 1664 | 0 | 1843 | 2593 | 71.1% |
|
||||
| ov_SC05_011 | 1826 | 1664 | 0 | 1827 | 2413 | 75.7% |
|
||||
| ov_SC05_017 | 1858 | 1661 | 0 | 1869 | 2847 | 65.6% |
|
||||
| ov_SC05_018 | 1849 | 1664 | 0 | 1862 | 2678 | 69.5% |
|
||||
| ov_SC05_019 | 1827 | 1666 | 0 | 1827 | 2427 | 75.3% |
|
||||
| ov_SC06_000 | 1861 | 1673 | 0 | 1864 | 2696 | 69.1% |
|
||||
| ov_SC06_006 | 1834 | 1664 | 0 | 1835 | 2516 | 72.9% |
|
||||
| ov_SC06_008 | 1839 | 1666 | 0 | 1845 | 2546 | 72.5% |
|
||||
| ov_SC06_010 | 1838 | 1664 | 0 | 1843 | 2522 | 73.1% |
|
||||
| ov_SC06_011 | 1830 | 1664 | 0 | 1834 | 2473 | 74.2% |
|
||||
| ov_SC06_013 | 1829 | 1664 | 0 | 1830 | 2429 | 75.3% |
|
||||
| ov_SC06_014 | 1831 | 1664 | 0 | 1833 | 2457 | 74.6% |
|
||||
| ov_SC06_015 | 1828 | 1664 | 0 | 1828 | 2425 | 75.4% |
|
||||
| ov_SC06_016 | 1839 | 1664 | 0 | 1841 | 2554 | 72.1% |
|
||||
| ov_SC06_018 | 1838 | 1667 | 0 | 1845 | 2670 | 69.1% |
|
||||
| ov_SC06_020 | 1832 | 1666 | 0 | 1833 | 2523 | 72.7% |
|
||||
| ov_SC06_022 | 1838 | 1664 | 0 | 1846 | 2647 | 69.7% |
|
||||
| ov_SC06_024 | 1843 | 1664 | 0 | 1849 | 2672 | 69.2% |
|
||||
| ov_SC06_025 | 1836 | 1664 | 0 | 1841 | 2577 | 71.4% |
|
||||
| ov_SC06_027 | 1824 | 1664 | 0 | 1825 | 2412 | 75.7% |
|
||||
| ov_SC06_029 | 1852 | 1664 | 0 | 1864 | 2667 | 69.9% |
|
||||
| ov_SC06_030 | 1830 | 1664 | 0 | 1830 | 2461 | 74.4% |
|
||||
| ov_SC06_032 | 1831 | 1665 | 0 | 1838 | 2663 | 69.0% |
|
||||
| ov_SC06_033 | 1839 | 1665 | 0 | 1846 | 2636 | 70.0% |
|
||||
| ov_SC07_000 | 1842 | 1668 | 0 | 1844 | 2526 | 73.0% |
|
||||
| ov_SC07_001 | 1831 | 1664 | 0 | 1833 | 2459 | 74.5% |
|
||||
| ov_SC07_002 | 1845 | 1664 | 0 | 1849 | 2584 | 71.6% |
|
||||
| ov_SC07_008 | 1825 | 1664 | 0 | 1825 | 2390 | 76.4% |
|
||||
| ov_SC07_009 | 1833 | 1664 | 0 | 1835 | 2434 | 75.4% |
|
||||
|
||||
Reference in New Issue
Block a user