Scorr / RetroUnity

Unity frontend for the libretro API.
GNU General Public License v3.0
41 stars 23 forks source link

Running on Oculus Quest 2, possible or not in the current state. #24

Open saintmikie opened 3 years ago

saintmikie commented 3 years ago

Hi,

I have been testing fuse_lebretro_windows_x86_64 and all works well, Spectrum games load fine and play great.

I am trying to run this in Quest2 for a family xmas experience I am designing in VR, I have tested the included APK but it is incompatible with Quest2 (I think because it is ARM7).

I am just looking for some advice and wondering if the fuse_libretro ARM64_V8a would be fine.

I have tested with an android build and I get the white screen on the TV but it then errors reading the Core, error below from unity.

Log files and screen shots of unity setup attached.

.so file attached, this was arm64 downloaded from the nightly build. Unity3

Thanks

Mike 09-12-2020--17-31-18.txt Unity1 Unity2 fuse_libretro_android_android.zip

lazydevyo commented 3 years ago

Whats exactly error you get? #25

saintmikie commented 3 years ago

Hi,

Errors I was getting are below, tried quite a few different locations. But not sure I have even got the correct Libretro file.

I have also tested on my android phone and I get the same issue, the thing that stuck out the most was the UnityShaderCompilerExtEvent, making me think something was not compatible.

Windows version works perfectly.

Thanks for looking.

/storage/emulated/0/Android/data/com.scorr.retrounity/files/Manic Miner.tzx RetroUnity.GameManager:Awake()

LoadCore: fuse_libretro_android_android.so RetroUnity.Utility.AndroidDLLHandler:LoadCore(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

undefined symbol: UnityShaderCompilerExtEvent RetroUnity.Utility.AndroidDLLHandler:LoadLibrary(String) RetroUnity.Utility.AndroidDLLHandler:LoadCore(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

Error loading DLL. RetroUnity.Utility.AndroidDLLHandler:LoadCore(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_api_version' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_init' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_get_system_info' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_get_system_av_info' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_load_game' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_set_video_refresh' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_set_audio_sample' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_set_audio_sample_batch' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_set_input_poll' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_set_input_state' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_set_environment' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_run' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

DLL not found, cannot get method 'retro_deinit' RetroUnity.Utility.AndroidDLLHandler:GetMethod(String) RetroUnity.Libretro:InitializeLibrary(String) RetroUnity.GameManager:LoadRom(String)

NullReferenceException: Object reference not set to an instance of an object. RetroUnity.LibretroWrapper+Wrapper.Init () (at <00000000000000000000000000000000>:0) RetroUnity.GameManager.LoadRom (System.String path) (at <00000000000000000000000000000000>:0)

saintmikie commented 3 years ago

Hi,

I have been doing some more testing and found the issues below, testing with IL2CPP and Mono, attachments of log files and screehshots.

Screenshots.zip

Links to my APK and the Project below.

https://www.dropbox.com/s/z881j4ijmcuhd7v/SpecDroid.apk?dl=0

Link to my Project Below in 2019.4.25

https://www.dropbox.com/s/9h930jg42c439xb/RetroUnity-Android - 2019.4.25.zip?dl=0

I get 2 different errors depending whether I compile as Mono or IL2CPP

1) Mono I get :- dlopen failed library "snes9x_libretro_android.so file" not found

2) IL2CPP I get :- Undefined symbol UnityShaderCompilerExtEvent

I have checked the APK file and all files are in the SpecDroid\lib\armeabi-v7a folder after unzipping the APK, I am using the same .so as the APK file above, just to make sure I am not using the wrong files.

I have tried on several different versions of Unity including the below.

2019.4.9f1 2018.4.7f1 2019.3.3f1 2017.1.0f3 2020.1.5

Thanks

Mike