DuoPlay 1.0 development candidate — source snapshot, 26 October 2026 This snapshot corresponds to the seven-core development candidate. It is not an App Store release or a statement of App Store approval. Source files remain subject to their original licences. No games, user-imported BIOS files, signing identities, provisioning profiles or private keys are intentionally included. Contents - duoplay-frontend-source.tar.gz: exact retained frontend source/resources/project files; generated build products and personal Xcode workspace state are excluded. Existing third-party MoltenVK framework inputs are retained as prebuilt dependencies, version 1.2.8; their exact build provenance remains under review. Their presence must not be represented as a fully source-rebuilt dependency. - Seven source-and-build archives: each contains the upstream source at the recorded revision, build script, provenance and any DuoPlay patch. The source patches are part of the corresponding source. Published core packages exclude compiled core binaries. - frontend-files.json: hash inventory of the frontend snapshot. - Credits-and-Licences.txt: preserved notices for RetroArch, cores, fonts and libraries. - SHA256SUMS: download integrity checks. DuoPlay is an independent derivative. Original developers are credited; no endorsement is implied. Raymond Delsol maintains the Duo-specific changes. The app is intended to be entirely free, without ads, paid upgrades or donation requests. Build requirements macOS, Xcode with iPhoneOS SDK 27.1 (used for this snapshot), command-line build tools, make, Python 3, patch and tar. The core scripts use a minimum iOS version of 15.0. Xcode is installed at /Applications/Xcode.app in the recorded build. Adjust DEVELOPER_DIR if your installation differs. Build steps 1. Extract duoplay-frontend-source.tar.gz. 2. Extract each of the seven *-source-and-build.tar.gz archives into a separate directory. Run its build.sh there. Scripts extract the pinned source, apply the included patch if present, then build the iOS arm64 core. 3. Copy each resulting *_libretro_ios.dylib into duoplay-frontend/pkg/apple/iOS/modules/. Snes9x outputs in its libretro directory; FBNeo in src/burner/libretro; the remaining cores output in their source root. 4. The candidate verifier pins the original input hashes. Rebuilt Mach-O files can differ due to toolchain, paths and generated UUIDs. For your own rebuild, update distribution/core-allowlist.json hashes to your new core binaries after validating your inputs. This does not alter their licences. 5. Open pkg/apple/RetroArch_iOS13.xcodeproj, select DuoPlay Store Candidate, and choose your own signing team and unique bundle identifiers. No developer credentials are supplied. Or use xcodebuild with that project/scheme and an appropriate device destination. 6. Distribution resources, original licences and acknowledgements must remain included. The --submission check intentionally remains blocked until unresolved release obligations are satisfied. No JIT launcher is included. PCSX uses DYNAREC=0; Mupen disables CPU dynarec and parallel RSP/RDP; Saturn uses WANT_JIT=0. Mupen's retained patch addresses legacy Mac header handling in bundled libpng/zlib. Source package scripts and provenance record these changes. Licensing status Publishing source addresses source availability for the material actually published. It does not itself resolve App Store/GPL distribution terms or certify every dependency's provenance. The development candidate is not yet cleared for App Store submission. Applicable component licences govern copying and redistribution; this README adds no restrictions and does not replace their terms. Support: support@raydelsol.uk