TerryCavanagh / VVVVVV

The source code to VVVVVV! http://thelettervsixtim.es/
Other
7k stars 559 forks source link

Android port (for desktop_version) #1004

Closed leo60228 closed 1 year ago

leo60228 commented 1 year ago

Changes:

This adds an Android port. It does not solve #832, however, so an external keyboard or gamepad is required. The project setup is based on SDL's README-android.md, which requires a symlink to SDL to be placed inside the game's source tree, meaning that SDL has to be cloned next to VVVVVV.

It can be built by opening the desktop_version/VVVVVV-android folder in Android Studio and building it like any other Android app.

A prebuilt version for testing is at https://drive.google.com/drive/folders/19Z1RSDvR0crhDhcOGC5gFAHKO7zbOZCa.

Legal Stuff:

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

leo60228 commented 1 year ago

Forgot to mention this in the PR description, but data.zip should be put at desktop_version/VVVVVV-android/app/src/main/assets/data.zip in the repo.

leo60228 commented 1 year ago

Three minor notes:

leo60228 commented 1 year ago

I played through the whole game on Android. The only issue I ran into is that the left stick Y axis is reversed on a GameCube controller. This is likely an SDL issue, and the other controllers I've tested (Steam Controller and Xbox One controller, both over USB) worked fine, so I don't think it blocks much.

flibitijibibo commented 1 year ago

The GameCube issue may be https://github.com/libsdl-org/SDL/pull/7930

leo60228 commented 1 year ago

I added a DocumentsProvider to allow cleanly accessing VVVVVV's data from a file manager. The implementation was adapted from the one used by system apps, and I kept the Apache 2.0 license header intact on FileSystemProvider.java (which is almost entirely AOSP source).

InfoTeddy commented 1 year ago

Conflicts need to be resolved.