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

Add libretro port #1204

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Add libretro port #1204

wants to merge 6 commits into from

Conversation

iyzsong
Copy link

@iyzsong iyzsong commented Oct 12, 2024

Changes:

Add libretro port, which build VVVVVV as a shared library (static link not tested) for RetroArch.
It:

  • Add SDL2 as a submodule to third_party
  • Use SDL software renderer
  • Add BUILD_LIBRETO and LIBRETO_STATIC options to cmake
  • Will build vvvvvv_libretro.so on Linux, run via retroarch -L vvvvvv_libretro.so.
  • game data (data.zip, lang and fonts) should be in a vvvvvv directory in the RetroArch system directory.

To keep it smooth, enable '>30 fps' and disable 'vsync'.

Thanks!

Legal Stuff:

By submitting this pull request, I confirm that...

  • My changes may be used in a future commercial release of VVVVVV
  • I will be credited in a CONTRIBUTORS file and the "GitHub Friends"
    section of the credits for all of said releases, but will NOT be compensated
    for these changes unless there is a prior written agreement

@NyakoFox
Copy link
Contributor

How does this work with custom levels with custom assets? Isn't there a problem regarding save state size being dynamic due to custom assets size being dynamic?

@iyzsong
Copy link
Author

iyzsong commented Oct 12, 2024

How does this work with custom levels with custom assets? Isn't there a problem regarding save state size being dynamic due to custom assets size being dynamic?

I haven't test it, but it can load data.zip as game, and use its directory to replace the system directory. The saves are not managed by RetroArch, and will be put in the system directory's saves.

@InfoTeddy
Copy link
Collaborator

How does this work with custom levels with custom assets? Isn't there a problem regarding save state size being dynamic due to custom assets size being dynamic?

This doesn't support save states (retro_serialize and retro_unserialize return false).

@flibitijibibo
Copy link
Collaborator

The changes to the core are okay, but the added SDL files are kind of huge - we did a bunch of changes to SDL's overall design to accommodate RetroArch's expectations for program flow, has a libretro port of SDL3 been attempted yet? The custom files actually look okay so I wonder if now's the time to upstream, and then we can get this port in when #1200 is done.

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

Successfully merging this pull request may close these issues.

4 participants