You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c9b747b
Browse filesBrowse the repository at this point in the historyBrowse files
-**PVPatchEngine** — the streaming patch engine PVPatching applies through (bounded memory, 64-bit offsets, vendored Apache-2.0 xdelta3). Its own repo, github.com/Provenance-Emu/PVPatchEngine, which iCube and iFly also depend on by URL: change it there, tag a release, bump the version in `PVPatching/Package.swift`. Only `PVPatching/Sources/PVPatching/Engine/EngineBridge.swift` may import it (its `PatchFormat`/`PatchError`/`PatchProgress` clash with PVPatching's)
79
79
-**PVPrimitives** — Base data types shared across modules
80
+
-**PVSystems** (separate repo, github.com/Provenance-Emu/PVSystems) — `SystemIdentifier` and per-system metadata (TheGamesDB/libretrodb/OpenVGDB IDs, RetroAchievements console IDs, per-game BIOS manifest). Shared with iCube and iFly: change it there, tag a release, then bump the pin in `Provenance.xcworkspace`'s `Package.resolved` by hand
80
81
-**PVQuicklookSupport** — iOS and macOS Quicklook api support code
81
82
-**PVRcheevos** — RetroAchievements C client integration
82
83
-**PVSettings** — User preferences
@@ -425,7 +426,7 @@ Agents MUST run these checks before creating a PR. Do NOT skip any step.
425
426
426
427
5.**No magic numbers** — Extract constants. Don't hardcode values that are used in multiple places.
427
428
428
-
6.**Use `SystemIdentifier` enum, not raw strings** — Never compare system identifiers using raw string literals like `"com.provenance.n64"`. Use the `SystemIdentifier` enum from `PVPrimitives`:
429
+
6.**Use `SystemIdentifier` enum, not raw strings** — Never compare system identifiers using raw string literals like `"com.provenance.n64"`. Use the `SystemIdentifier` enum from `PVSystems`:
429
430
430
431
```swift
431
432
// ❌ WRONG — fragile, typo-prone, no compile-time safety
@@ -458,7 +459,7 @@ Agents MUST run these checks before creating a PR. Do NOT skip any step.
458
459
if ([self.systemIdentifier isEqualToString:PVAtariSTSystemIdentifier]) { ... }
459
460
```
460
461
461
-
The `SystemIdentifier` enum is in `PVPrimitives/Sources/PVSystems/SystemIdentifier.swift`. Import `PVPrimitives` to use it. `systemIdentifier` on the core (`PVEmulatorCore`) is a `String?`.
462
+
The `SystemIdentifier` enum lives in the PVSystems package (github.com/Provenance-Emu/PVSystems, shared with iCube and iFly). `import PVSystems`, and give the target `.product(name: "PVSystems", package: "PVSystems")`. `systemIdentifier` on the core (`PVEmulatorCore`) is a `String?`.
462
463
463
464
7. **Type safety** — Check that optional unwrapping is correct (no double-optionals from `?.` chains). Check that enum cases exist before referencing them. Check that function signatures match call sites.
0 commit comments