Skip to content

Feature/new cores/libretrogles#2373

Draft
JoeMatt wants to merge 92 commits into
developfrom
feature/new-cores/libretrogles
Draft

Feature/new cores/libretrogles#2373
JoeMatt wants to merge 92 commits into
developfrom
feature/new-cores/libretrogles

Conversation

@JoeMatt
Copy link
Copy Markdown
Member

@JoeMatt JoeMatt commented Jan 6, 2025

What does this PR do

Attempt to continue the work of @rf2222222 to support GLES/Vulkan cores in native core not needing the whole 'retroarch' code base.

It also is a test bed for other cores that @rf2222222 had previously had working using their own Metal/Vulkan/GLES runloops but have broken for on reason or another.

  • Dolphin (runs but no video)
  • Play! (Compiling broke)

Core that could work that currently aren't supported in RetroArch

  • Flycast (non-jit)
  • DuckStation
  • VecX (currently building in non-gl mode)

Cores that are in RetroArch but could be included in Lite

  • PCSXRearmed (non-JIT)
  • BeetlePSX (non-JIT)

Cores that need other 'libretro.h' support

  • Desmume2015 (needs touch input, optionally mic/camera/gps/network)
  • MelonDS (needs touch input, optionally mic/camera/gps/network)

Cores with other requirements but otherwise build as-is

  • fMSX (MSX1/2+) - needs video fixed, wrong pixel size and/or format
  • FreeIntV (Intellivision) - loads, video needs fixing
    - Fuse (ZXSpectrum) Fuse compiling is broken, nvm

TODO

Finish the callbacks for 'libretro.h' to support HW acceleration.

I attempted to update libretro to the more modern version but this breaks most of the existing code and is a larger undertaking.

Testing

Build the "Provenance Lite" target, NOT "Provenance Lite (AppStore)".

Before merge!

I edited the build.yml to only build the test app "Provenance Lite" non-app store which contains only the cores listed above.

@JoeMatt JoeMatt self-assigned this Jan 6, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 6, 2025

Builds for this Pull Request are available at
Provenance-Lite-iOS-v3.0.0(5831).ipa
Have a nice day.

Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
@JoeMatt JoeMatt force-pushed the feature/new-cores/libretrogles branch from f4615fa to 3e0d31f Compare January 22, 2025 22:39
@JoeMatt
Copy link
Copy Markdown
Member Author

JoeMatt commented Mar 7, 2026

@claude this PR got kind of stale, we've done some work on develop of the last year that already updated some of the libretro native bridge code to support keyboard and house and touch etc can't remember if we did support for 3D acceleration cores. i think i did some work but havne't tested if it works with a 3d core, though maybe we did with PVVecX?

anyway, can you check the status of this PR and see if there's still some relevant code here to save or reuse, especially in some of the github issues where we noted some plans to update some of these cores already, or have already updated and merged in closed issues.

you should update and tag those issues with any relevant new code or information learned from this PR code and / or make new issues documenting anything worth saving, reusing, or implimenting now

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 7, 2026

✅ PR #2373 Audit — Complete

Summary

Audited feature/new-cores/libretrogles vs develop. Most work has been absorbed; documented what's unique.

Completed

Key Findings

Completed: 2026-03-07 UTC

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 7, 2026

@JoeMatt — PR #2373 Audit Summary

I've done a full diff analysis of this branch vs current develop and documented everything. Here's the TL;DR:


What develop has already absorbed (no need to save)

Feature Status Key commits
3D GLES core support (RetroArch) ✅ Merged a20b7c788
VecX hardware rendering ✅ Merged a20b7c788
Virtual keyboard + mouse overlay ✅ Fully merged PRs #2587#2595
Keyboard pipeline for libretro cores ✅ Merged b8d1456e7
DS dual-screen skin system ✅ Merged 3fdbdd905
Desmume2015 touch + core options ✅ Merged 408589307
Dolphin landscape Vulkan + shaders ✅ Merged f595ca97c, 61d5e14aa
DuckStation cheats ✅ Merged d4660a3a7
DosBox GL/video/mouse fixes ✅ Merged cf684cffb
fMSX MSX call fixes (RetroArch path) ✅ Merged b6f43d852

What's unique in this PR worth preserving

Item Status Action
Flycast libretro #ifdef LIBRETRO scaffold Not merged Documented in #2369
BeetlePSX Swift core scaffold (CoreOptions.swift, CorePlist.swift, etc.) Not merged Documented in #2368
Flycast joystick forwarding (didMoveJoystick in EmuCore.swift) Not merged Should be cherry-picked
DuckStation MoltenVK path fix Not merged Documented in #2543
Dolphin experimental config (bMMU, Ubershaders, bCPUThread) Not merged New issue #2625

The core blocker for Flycast + BeetlePSX

Both cores have the same fundamental problem: RETRO_ENVIRONMENT_SET_HW_RENDER isn't fully wired up. The cores request an OpenGL/Vulkan context from the host but don't get a working one, so they produce no video. I've created issue #2624 to track this as a spike — it's the single piece of work that would unblock native hw-render libretro cores.

The good news: via the RetroArch wrapper, Flycast already works (3D GLES enabled in a20b7c788).


New issues created

Issues updated with findings


Recommendation on this PR

This PR is stale and not mergeable as-is (cmake binary files, project.pbxproj churn, the build.yml is reverted to non-AppStore for testing). However the code insights have been documented in the issues above. I'd suggest:

  1. Close this PR with a note pointing to the new issues
  2. Any code worth saving (especially the BeetlePSX Swift scaffold and Flycast joystick forwarding) should be cherry-picked into fresh PRs when those cores are actively worked on

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant