Skip to content
Merged
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,13 @@ Each distinct function counts once: frontbin's copy of the menus is the main ima
<!-- progress:begin SCES_532.85 (tools/progress.py --write) -->
| | Functions (exact) | Code (exact) | Fuzzy |
| --- | ---: | ---: | ---: |
| **Main program** | 3,139 of 8,945 | 244,748 of 2,202,512 bytes (11.11%) | 11.53% |
| Engine core (core.text) | 770 of 1,668 | 73,268 of 288,232 bytes (25.42%) | 25.98% |
| **Main program** | 3,295 of 8,945 | 274,528 of 2,202,512 bytes (12.46%) | 12.87% |
| Engine core (core.text) | 772 of 1,668 | 73,404 of 288,232 bytes (25.47%) | 26.03% |
| libgcc | 26 of 33 | 6,148 of 10,836 bytes (56.74%) | 56.74% |
| Network (net.text) | 494 of 2,441 | 16,240 of 465,620 bytes (3.49%) | 4.50% |
| Resident menus (.text) | 1,846 of 4,786 | 148,512 of 1,422,048 bytes (10.44%) | 10.65% |
| Resident menus (.text) | 2,000 of 4,786 | 178,156 of 1,422,048 bytes (12.53%) | 12.71% |
| frontbin's own code | 3 of 17 | 580 of 15,776 bytes (3.68%) | 3.68% |
| **Shared level code** | 1,627 of 5,088 | 125,324 of 2,008,520 bytes (6.24%) | 6.89% |
| **Shared level code** | 1,642 of 5,088 | 127,004 of 2,008,520 bytes (6.32%) | 6.98% |
| **Level-specific code** | 1,089 of 4,080 | 94,180 of 1,601,892 bytes (5.88%) | 6.29% |
| Level 00: Multiplayer Menu | 758 of 2,826 | 63,332 of 943,820 bytes (6.71%) | 7.12% |
| Level 01: Dreadzone Station (and 21) | 91 of 357 | 7,656 of 189,772 bytes (4.03%) | 4.03% |
Expand All @@ -101,9 +101,9 @@ Each distinct function counts once: frontbin's copy of the menus is the main ima
| Level 14: Ghost Station (and 34) | 6 of 23 | 444 of 8,884 bytes (5.00%) | 5.00% |
| Level 15: Control Level (and 35) | 23 of 134 | 2,540 of 116,624 bytes (2.18%) | 2.18% |
| Level 41: Battledome Tower (all 22 multiplayer maps) | 141 of 374 | 14,568 of 140,340 bytes (10.38%) | 12.24% |
| **Total** | 5,855 of 18,113 | 464,252 of 5,812,924 bytes (7.99%) | 8.49% |
| **Total** | 6,026 of 18,113 | 495,712 of 5,812,924 bytes (8.53%) | 9.02% |

Each distinct function counts once: frontbin's copy of the menus is the main image's, and a level function counts once however many of the 47 levels have it. 244,748 bytes (4.21%) are in units with nothing left to decompile.
Each distinct function counts once: frontbin's copy of the menus is the main image's, and a level function counts once however many of the 47 levels have it. 274,528 bytes (4.72%) are in units with nothing left to decompile.
<!-- progress:end -->

</details>
Expand Down
18 changes: 18 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,24 @@ The C of 5 functions (`src/core/00155908.c`, `src/game/0046D6A8.c`, `src/game/00
request #43 (Shaar-games), and was then checked against this game's SCUS_974.65 bytes. Each file says so in its first-line
comment.

## PAL engine-family reference reconstructions

The PAL functions listed in [`config/pal/crossgame_sources.tsv`](config/pal/crossgame_sources.tsv)
were independently reconstructed against RAC4 retail after comparing public
engine-family function catalogues and C implementations. The table records an
immutable repository commit, file and reference function for each reconstruction;
the C files also carry a reference comment.

References include RAC1 and RAC2 (GPL-3.0 project code), RAC3, and the unified
[OpenRAC repository](https://github.com/OpenRAC/OpenRAC). RAC3's decompiled game
sources have the separate scope described in its `LEGAL.md`, as noted above.
These credits do not apply one blanket licence to all reference material.
The original authors and contributors remain credited by those projects.

Addresses, field layouts, argument types and control flow were checked against
RAC4 PAL rather than inferred from a fingerprint alone. No proprietary SDK source,
samples or headers were used.

## Standard C library algorithm references (`src/core/`)

The matching reconstructions in this contribution were written against the retail
Expand Down
31 changes: 31 additions & 0 deletions config/pal/crossgame_sources.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Public engine-family references for independently reconstructed PAL C.
# Fingerprints identify candidates; matching and address checks use RAC4 retail.
name repository commit path reference_function fingerprint
func_0011C750 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/levels/shared/L08_002F2D10.c func_L08_0033CD18 f4933e8baccd7b96
func_0011C978 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/levels/shared/L08_002F2D10.c func_L08_0033CD18 f4933e8baccd7b96
func_00447A00 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/game/0027A0F8.c func_0027A0F8 abf7208e37f3d448
func_00447AD8 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/382380.c func_00386678 8220108ff95866dc
func_004493D8 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/game/0027C660-rc2.c func_0027C660 be6e56ff4c6b1909
func_0044B268 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/382380.c func_0038C3B0 0236471f1d7cafea
func_00454E18 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/38DED0.c func_0038E3C8 2a8ef2d0f64df86f
func_00457E60 OpenRAC/OpenRAC 73f725bf54bb1bf6d8b9bb5b1511ed00d551fbde games/rac3/ntsc/src/frontbin/3896E8.c func_0038C840 -
func_0045F078 OpenRAC/rac1-decomp 1d8228cc0c81da7bc2bdc3e77479ee050e0ef434 src/game/ui/hud.c LinkHudBank / func_001FF7F0 fc206bca7a66afcf
func_004635A8 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/397D48.c func_00399810 c6bc1c172c6ef5f9
func_004694C8 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/39A6E0.c func_0039E788 1422f64c88b54fb5
func_00469508 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/39A6E0.c func_0039E7C8 67fdf2c53419ef94
func_0046D780 OpenRAC/OpenRAC 73f725bf54bb1bf6d8b9bb5b1511ed00d551fbde games/rac3/ntsc/src/frontbin/3BDAC0.c func_003BDEA8 -
func_004749A0 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/levels/shared/L01_004463D0.c func_L01_004463F8 3b7a1d540bec2a9e
func_00476678 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/levels/shared/L01_004485E0.c func_L01_00448728 74b2e5bb1d8515dd
func_00476D30 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/levels/shared/L01_00448CC0.c func_L01_00448CC0 8370610e20192060
func_00476DF8 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/levels/shared/L01_00448CC0.c func_L01_00448D88 93fffc2b6bf7c67d
func_00479E28 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/levels/shared/L00_00316F60.c func_L00_00322EC8 4d90c88019d280c9
func_004D4058 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/levels/shared/L01_0047DBB0.c func_L01_0047DE68 cee158fb529be4d7
func_004D4D38 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/3B3050.c func_003B3910 f879e157d6c86f3d
func_004DFED8 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/game/002E3820-rc2.c func_002E3820 6168986a7581918b
func_004E87F8 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/game/002FC468.c func_002FC468 b47b02c2d8dd48ad
func_004EB520 OpenRAC/rac2-decomp 99f35ac2c084fc59cdf3d631f8f960a825e7a49c src/levels/shared/L00_0037B6F0.c func_L00_0037DD18 e00b49bbdca9142f
func_004EFAD0 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/3AA9D8.c func_003AACC0 7af571c5dc829dac
func_004F0B38 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/3B0048.c func_003B0470 ef4406041fc87225
func_004F1C08 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/3B0FF0.c func_003B1530 7ea4ba7258cca28b
func_00511BA0 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/frontbin/3F2238.c func_003F2268 a4369948393ac7d2
func_00541A50 OpenRAC/rac3-decomp cd0e7c20fd8a93116566ba2e024fa2f3536bd30c src/levels/shared/L39_0066C748.c func_L39_0066D888 e5670ece16ce88e0
Loading
Loading