Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build: PS2 / PPSSPP / AppIcon Fixes to pass all compile workflow checks #2337

Open
wants to merge 15 commits into
base: develop
Choose a base branch
from

Conversation

rf2222222
Copy link
Contributor

@rf2222222 rf2222222 commented May 6, 2024

What does this PR do

Fixes PS2 paths to relative path
Fixes PPSSPP to compile on AppleTV (needs Apple TV MoltenVK to work on AppleTV)
Fixes AppIcon sizes to individual sizes (so it compiles on Azure Xcode 14.1)

Where should the reviewer start

How should this be manually tested

Any background context you want to provide

What are the relevant tickets

Screenshots (important for UI changes)

Questions

@rf2222222 rf2222222 requested review from JoeMatt and jasarien as code owners May 6, 2024 08:20
@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch 4 times, most recently from 5faafec to 3e4ee21 Compare May 6, 2024 20:33
@rf2222222 rf2222222 changed the base branch from rf2222222-emuthreeRebirth to develop May 7, 2024 06:19
@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch 2 times, most recently from f867431 to df44342 Compare May 7, 2024 07:00
Copy link

github-actions bot commented May 7, 2024

Builds for this Pull Request are available at
Provenance-Lite.ipa
ProvenanceTV.ipa
Provenance-tvOS.ipa
Provenance-UnderDevelopment.ipa
Provenance-XL.ipa
Have a nice day.

@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch from df44342 to 35b8e4f Compare May 7, 2024 08:43
Copy link

github-actions bot commented May 7, 2024

Builds for this Pull Request are available at
Provenance-Lite.ipa
ProvenanceTV.ipa
Provenance-tvOS.ipa
Provenance-UnderDevelopment.ipa
Provenance-XL.ipa
Have a nice day.

@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch 2 times, most recently from 7277a99 to 4c2aa5f Compare May 7, 2024 12:17
Copy link

github-actions bot commented May 7, 2024

Builds for this Pull Request are available at
Provenance-Lite.ipa
ProvenanceTV.ipa
Provenance-tvOS.ipa
Provenance-UnderDevelopment.ipa
Provenance-XL.ipa
Have a nice day.

@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch 5 times, most recently from 6881812 to c0742c0 Compare May 7, 2024 22:12
@JoeMatt JoeMatt marked this pull request as draft May 8, 2024 04:15
@JoeMatt
Copy link
Member

JoeMatt commented May 8, 2024

I see this has active pushes still so I converted to a draft PR.

Does this PR override the need for #2334 ?

@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch from c0742c0 to 934fe49 Compare May 8, 2024 06:23
@rf2222222
Copy link
Contributor Author

rf2222222 commented May 8, 2024

I see this has active pushes still so I converted to a draft PR.

Does this PR override the need for #2334 ?

This adds code to get PPSSPP to compile on Apple TV (so Provenance Project compiles on build tests using appletvos), and for Play to compile on iOS (updates the hardcoded paths), on top of 2334. So.. this could just be pointed to merge into 2334, or it could be overridden — it’s up to you. =]

These are essentially fixes to get all the build checks to pass.

AppIcon in Assets using Single Size (the 1024x1024 image) was throwing an error, which is fixed by specifying individual sizes. A script to auto generate various sizes of icons on iOS/watchOS is added, along with different sizes in Contents.json inside AppIcon. With this, everything should now compile on all tests.

@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch 3 times, most recently from d01136d to c7a0588 Compare May 8, 2024 10:59
Copy link

github-actions bot commented May 8, 2024

Builds for this Pull Request are available at
Provenance-Lite.ipa
ProvenanceTV.ipa
Provenance-tvOS.ipa
Provenance-UnderDevelopment.ipa
Provenance-XL.ipa
Have a nice day.

@rf2222222 rf2222222 marked this pull request as ready for review May 8, 2024 12:37
@rf2222222 rf2222222 changed the title PS2: Fix Paths Build: PS2 / PPSSPP / AppIcon Fixes to pass all compile workflow checks May 8, 2024
@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch 11 times, most recently from 7eea19c to 88acab9 Compare July 4, 2024 12:55
Copy link

github-actions bot commented Jul 4, 2024

Builds for this Pull Request are available at
Provenance-Lite.ipa
ProvenanceTV.ipa
Provenance-tvOS.ipa
Provenance-UnderDevelopment.ipa
Provenance-XL.ipa
Have a nice day.

@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch from 88acab9 to 1bc83fe Compare July 5, 2024 00:02
@rf2222222 rf2222222 force-pushed the rf2222222-emuthreeRebirth branch from 1bc83fe to 2bb92d8 Compare July 5, 2024 00:55
Copy link

github-actions bot commented Jul 5, 2024

Builds for this Pull Request are available at
Provenance-Lite.ipa
ProvenanceTV.ipa
Provenance-tvOS.ipa
Provenance-UnderDevelopment.ipa
Provenance-XL.ipa
Have a nice day.

@rf2222222
Copy link
Contributor Author

Just FYI, I haven't merged this because it's part of a massive refactor branch I have. I'll push as soon as it builds though it will not have all cores activated in the build as I make spm projects for them.

I'm thinking about how to do the libretro cmake cores, eitehr using SPM's built in cmake support (not sure if it's good), or a custom XCode build action which I have experience with for custom build tools like we're doing with the cmake thing.

It will probalby just build the libs directly instead of making the xcode project, using cmake but for each platform and our shared MoltenVK path, and then link that to a swift / objc core in SPM.

So far I have all the C only cores building in SPM and I'm making progess through the non cmake C++ cores. It's not hard, just a lot of cores to copy boiler plate and fix paths.

the cores will be a lot more sane since they'll all be in the format


Sources/
Sources/PVFooCore (Current ObjC code, but changed to a category of the Swift subclass) 
Sources/PVFooCoreSwift (Subclass of Swift PVCore, using extensions)
Sources/PVFooCoreC ( C structs, enums, defines etc for use in Swift and ObjC )
Sources/libfoo (upstream project as a lib)

Cores can now be built without the app since all the PV* framewworks are seperate spm projects too.

In theory, you could make a thin wrapper app to just boot single cores / roms for testing

How’s the App Store release going? If there’s anything I could look at to get Provenance XL released on the App Store, let me know =]

@JoeMatt
Copy link
Member

JoeMatt commented Aug 14, 2024

Just FYI, I haven't merged this because it's part of a massive refactor branch I have. I'll push as soon as it builds though it will not have all cores activated in the build as I make spm projects for them.
I'm thinking about how to do the libretro cmake cores, eitehr using SPM's built in cmake support (not sure if it's good), or a custom XCode build action which I have experience with for custom build tools like we're doing with the cmake thing.
It will probalby just build the libs directly instead of making the xcode project, using cmake but for each platform and our shared MoltenVK path, and then link that to a swift / objc core in SPM.
So far I have all the C only cores building in SPM and I'm making progess through the non cmake C++ cores. It's not hard, just a lot of cores to copy boiler plate and fix paths.
the cores will be a lot more sane since they'll all be in the format


Sources/
Sources/PVFooCore (Current ObjC code, but changed to a category of the Swift subclass) 
Sources/PVFooCoreSwift (Subclass of Swift PVCore, using extensions)
Sources/PVFooCoreC ( C structs, enums, defines etc for use in Swift and ObjC )
Sources/libfoo (upstream project as a lib)

Cores can now be built without the app since all the PV* framewworks are seperate spm projects too.
In theory, you could make a thin wrapper app to just boot single cores / roms for testing

How’s the App Store release going? If there’s anything I could look at to get Provenance XL released on the App Store, let me know =]

It's going. Cores are found but using an Objective-C category for cores didn't work. Swift doesn't see the methods. I'm writing a "bridge" class for swift to call into for cores that I don't want to convert to full Swift.

The branch develop-spm2024 has all the latest changes.

It builds with latest XCode in Swift 6 with concurrency! The app boots much faster now too.

Only the (AppStore) targets build on that branch at the moment.

What we need to do to get XL to be appstore compliant is convert the dylibs to .framework or frameworks.

I took a stab at it the other day and it starts to work, by making a dummy framework and linking them but it doesn't load Vulkan or the dylibs since the paths are wrong. I didn't go further since I had to get other builds out.

JoeMatt
JoeMatt previously approved these changes Oct 6, 2024
@JoeMatt
Copy link
Member

JoeMatt commented Oct 6, 2024

The builds expired, i need to figure out how to get the build bot to rebuild.

I'm still working on the new branch but I'm getting close to porting all this over. I'm working on the LibRetroCore cores at the moment. Then the ones that make dylibs will need to be wrapped in a .framework for appstore uploading

@JoeMatt
Copy link
Member

JoeMatt commented Oct 6, 2024

@rf2222222 this is an odd request, but can you push a dummy commit to trigger the builds. I lost access to my AWS that has the builds and they expired here.

I'll make a new site with the binaries but I can't trigger the build easily for some reason unless I do a new push, but i'd need to fork the PR for that

@JoeMatt
Copy link
Member

JoeMatt commented Oct 7, 2024

Thanks @rf2222222 you rock.

I'm working on the the updated RetroCore now. I have about 2/3 of them done, doing the GLES ones next. We'll have something soon.

I'll probably need your help on a few items when it's done on my end.

I also need to repackage the dylibs as a .framework as the last step .

I think you'll like the new code. You can choose to either do work in Swift calling into a new 'libretro' clang module or defer to the objective-c code. For things like options, it's been much easier to do them in swift but for the A/V and I/O code I'm leaving most of it in objc

Copy link

github-actions bot commented Oct 7, 2024

Builds for this Pull Request are available at
Provenance-Lite.ipa
ProvenanceTV.ipa
Provenance-tvOS.ipa
Provenance-UnderDevelopment.ipa
Provenance-XL.ipa
Have a nice day.

@JoeMatt
Copy link
Member

JoeMatt commented Oct 13, 2024

@rf2222222 the new PR handles this all now! Thanks for the amazing work.

I updated the retroarch code to codesign and load frameworks. Was an interesting experience lol

I even added a few new cores.

I'm leaving this open fore now since it has the ipas until the other branch builds with github.

Amazing work!

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.

2 participants