Git Product home page Git Product logo

unreallibretro's People

Contributors

altoretrato avatar n7alpha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

unreallibretro's Issues

For UE4.27 dedicated server crashes while loading any core.

I'm experimenting with deploying a dedicated server. The default server map contains Libretro_TV actor.
On start-up the server crashes with the following log

LogWindows: Error: === Critical error: ===
LogWindows: Error:
LogWindows: Error: Fatal error!
LogWindows: Error:
LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000098
LogWindows: Error:
LogWindows: Error: [Callstack] 0x00007ff77a2ef935 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77a2ece4f LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77a2f4ca1 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77b33cd25 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77b33d16e LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77b34c022 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77f2cf070 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77f2d4374 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77ebe0b5f LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77ebea025 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77ea49160 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77a2c20cb LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77a2d64dc LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77a2d65aa LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77a2d86e8 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff77a2e6fb4 LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ff7807d5fae LibretroSourceBuildServer.exe!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ffe6f9d7614 KERNEL32.DLL!UnknownFunction []
LogWindows: Error: [Callstack] 0x00007ffe70dc26a1 ntdll.dll!UnknownFunction []

VR controller issues with VR Template

I'm still very new to Unreal Engine, so sorry if this is a newbie issue.

The VR controllers don't work when I use the plugin with a project based on the UE VR Template.

I can build the plugin and run it on UE 5.11 and 5.2 on Windows 11 in a blank project, and in that case the VR controllers work fine in LibretroMap, but I'm looking to bring it to a VR project already in progress (and based on the default VR template, with all the VR optimizations already set up). If I build the plugin inside the VR Template project or copy the compiled plugin folder from a blank project, it seems to run mostly fine, except that the VR controllers don't work anymore (even in the LibretroMap).

Any tips about how to solve this?

Thanks!

Can't get DOSBOX working

Hi there,

been trying to get DOSBOX working. At first I got crashes with "RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY failed" since I didn't understand DOSBOX was using a seperate DOS subdirectory in the ROMS folder.

Fixed that, now I don't get any more crashes, just a blank screen - no matter what game i try to load. Any pointers? No idea how I can debug this when I don't get any error or crash.

[Oculus Quest2] About using unreal libretro in Oculus Quest 2.

Hello, I want to ask about using unreal libretro in Oculus Quest 2.
I used LibretroTVActor to run rom game.
When destroy the object(LibretroTVActor), during 1~2 minutes, application will crash in Quest 2.
How can I solve this problem?
Version is 4.27.

Broken on Modern multithreaded renderers D3D12, Vulkan, Metal, etc.

I'll probably fix this, but I'm just documenting it here. From what I've seen it seems renderer command buffers get deallocated while I'm still trying to queue commands on them. I think I'll just have to synchronize the destruction of the LibretroContext in bool IsReadyForFinishDestroy() in LibretroCoreInstance otherwise Unreal just deallocates renderer resources I guess when running editor instances. This is unfortunate because it will block the game thread until the LibretroContext instances die which will cause a lag spike in the case of more complex Libretro Cores. There might be more to this, but I'm guessing this is what's wrong.

I can probably fix up the plugin hot reloading delegate methods too.

The core failed to load the content and crashes the game

My Error:

Image:
image

Error:
Fatal error: MyProject/Plugins/UnrealLibretro/Source/UnrealLibretro/Private/sdlarch.cpp] [Line: 898] The core failed to load the content.

UE4Editor_UnrealLibretro!LibretroContext::load_game() [MyProject\Plugins\UnrealLibretro\Source\UnrealLibretro\Private\sdlarch.cpp:900]

UE4Editor_UnrealLibretro!<lambda_7ef87da54c2d095730c03030fe5bc918>::operator()() [MyProject\Plugins\UnrealLibretro\Source\UnrealLibretro\Private\sdlarch.cpp:986]

UE4Editor_UnrealLibretro!FLambdaRunnable::Run() [MyProject\Plugins\UnrealLibretro\Source\UnrealLibretro\Private\LambdaRunnable.cpp:34]

UE4Editor_Core!FRunnableThreadWin::Run() [D:\Source\UE\UnrealEngine.4\Engine\Source\Runtime\Core\Private\Windows\WindowsRunnableThread.cpp:86]

Details:
This is not mainly on specific Core or Rom its mainly in general, when the plugin tries to open a rom and it fails, it should fall back on an error message retrun a boolean for example to the Launch function instead of crashing the game/editor.

It will make the plugin much stable as it is super helpful and easy to use.

Thank you in advance!

I port Emulators to Unity and made SNES, GENESIS, AND GBA Core Mods so they play in SBS 3D.

I used to run Libretro Cores in Unity3D but they don't work anymore. (With the same code).
So I started porting C# Emulators to run in Unity, and have working Unity3D code for NES, SNES, GENESIS, & GBA.
I modified 3 Libretro cores to play their games in 3D instead of 2D. (When the original systems were only 2D)
I just recently have been modding the VBAm core to load and run replacement tiles at higher resolutions and it works perfect.
My family just bought me a top end new computer for xmas on the condition I learn Unreal for 4 hours a day, because my brother convinced everyone its better than Unity.
So, I literally just installed Unreal Engine yesterday, and tried to run your code, but it says it was compiled for another engine version, then says to compile it manually. I don't know what to do to fix it. I would like to help you with this code and I will be studying what you have done to familiarize myself with Unreal Engine.
The VBAm Core I modded to load new graphics at x+ resolution needs a tile editor, so if I can get it running in Unreal, I can have it so you edit the tiles in the game while you play. (I already did this with the NES in Unity)
My Email is edisonzghost / gmail . com
https://www.youtube.com/watch?v=VGHmmGN5YA8
https://www.youtube.com/watch?v=3QdkEx8IJNs
https://www.youtube.com/watch?v=ZmZ__x_D1Dc
https://www.youtube.com/watch?v=HPZGHzET2WQ
https://www.youtube.com/watch?v=Ami-0RjDFeY
https://www.youtube.com/watch?v=3fFJXUX08fY
^^ My Work. :)
I hope we can hang out, I should have the gist of Unreal in the next few weeks.. I'll be studying every day.

  • Myles Johnston

Editor crashed when I run uae CD32 Microcosm and stop pie (UE5)

Kinda minor, can live with that, but wanted to report it anyways just to be complete.
Was running Microcosm (Amiga CD32) on puae.

I guess just closing PIE (Stop button) isn't the smoothest method ever anyways. Maybe an easy fix.

[2022.04.17-06.51.05:072][ 68]LogWindows: Error: === Critical error: ===
[2022.04.17-06.51.05:072][ 68]LogWindows: Error:
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: Assertion failed: !IsImmediate() || IsInRenderingThread() || IsInRHIThread() [File:E:\UE_5.0\Engine\Source\Runtime\RHI\Public\RHICommandList.inl] [Line: 37]
[2022.04.17-06.51.05:072][ 68]LogWindows: Error:
[2022.04.17-06.51.05:072][ 68]LogWindows: Error:
[2022.04.17-06.51.05:072][ 68]LogWindows: Error:
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ff9f383da97 UnrealEditor-UnrealLibretro.dll!<lambda_4f288fe0dc72fbbf41bd6cf91a6c9dbb>::operator()() [C:\actions-runner_work\UnrealLibretro\UnrealLibretro\UE_5.0\UnrealLibretro\HostProject\Plugins\UnrealLibretro\Source\UnrealLibretro\Private\sdlarch.cpp:448]
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ff9f3844f8a UnrealEditor-UnrealLibretro.dll!TEnqueueUniqueRenderCommandType<<lambda_9a31740f99e92a887976c63cfd3f4c7a>::operator()'::6'::CopyToUnrealFramebufferTaskName,<lambda_4f288fe0dc72fbbf41bd6cf91a6c9dbb> >::DoTask() [E:\UE_5.0\Engine\Source\Runtime\RenderCore\Public\RenderingThread.h:193]
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ff9f3845970 UnrealEditor-UnrealLibretro.dll!TGraphTask<TEnqueueUniqueRenderCommandType<<lambda_9a31740f99e92a887976c63cfd3f4c7a>::operator()'::6'::CopyToUnrealFramebufferTaskName,<lambda_4f288fe0dc72fbbf41bd6cf91a6c9dbb> > >::ExecuteTask() [E:\UE_5.0\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:975]
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1efb3a9d UnrealEditor-Core.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1efb3e0a UnrealEditor-Core.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1efb4107 UnrealEditor-Core.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1b3c2375 UnrealEditor-Engine.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1b3f59c3 UnrealEditor-Engine.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1b3e0618 UnrealEditor-Engine.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1b419794 UnrealEditor-Engine.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa1b91a6e8 UnrealEditor-Engine.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa20d220d3 UnrealEditor-CoreUObject.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa20d0144c UnrealEditor-CoreUObject.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa20c5a38b UnrealEditor-CoreUObject.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa20c58f9c UnrealEditor-CoreUObject.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa18ad0dc0 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa184bf6a0 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2022.04.17-06.51.05:072][ 68]LogWindows: Error: [Callstack] 0x00007ffa18e49f56 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ff748b282f6 UnrealEditor.exe!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ff748b40d9c UnrealEditor.exe!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ff748b40e8a UnrealEditor.exe!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ff748b43c4d UnrealEditor.exe!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ff748b55534 UnrealEditor.exe!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ff748b586e6 UnrealEditor.exe!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ffa8f8b7034 KERNEL32.DLL!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error: [Callstack] 0x00007ffa909c2651 ntdll.dll!UnknownFunction []
[2022.04.17-06.51.05:073][ 68]LogWindows: Error:
[2022.04.17-06.51.05:087][ 68]LogExit: Executing StaticShutdownAfterError
[2022.04.17-06.51.05:089][ 68]LogWindows: FPlatformMisc::RequestExit(1)
[2022.04.17-06.51.05:089][ 68]LogWindows: FPlatformMisc::RequestExitWithStatus(1, 3)
[2022.04.17-06.51.05:089][ 68]LogCore: Engine exit requested (reason: Win RequestExit)
[2022.04.17-06.51.05:097][ 68]Log file closed, 04/17/22 08:51:05

Image issues with Flycast core

Hi, John!

Your UnrealLibretro is amazing! Thank you so much for sharing this with us! ๐Ÿ˜„

I just tested it with a couple of cores, and it seems to work perfectly with some of them, e.g., dosbox_svn_libretro.

OTOH, the Flycast core has sound and controllers working fine (just like in Retroarch), but the image is distorted:

ย 

Expected output (captured with the same core on Retroarch):
ย 

Other details:

  • UnrealLibretro v0.2.1-alpha, UE 4.27.2
  • Core: flycast_libretro
  • ROM: Samba de Amigo for the Dreamcast, PAL version
  • ROM: Samba de Amigo 2K for the Dreamcast, Japanese / NTSC
  • Windows 10 (21H1)
  • Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.40 GHz
  • NVIDIA GeForce GTX 1660

Any idea of what is causing the issue, and what would be the solution?

Thanks!

Minor issue - relative path in PIE when using DOSBOX (UE5)

When I use DOSBOX in UE5 it works fine, but in PIE the relative path is kinda broken. Like when I do "mount c ." the home dir (".") points to C:\Program Files\Epic Games\UE_5.0\Engine\Binaries\Win64\ instead of the project plugin ROMS folder. It did work correctly in UE4 so prolly some problem with either UE5 or the dosbox_svn_libretro.dll. Just wanted to mention it anyways.

Edit: github removes the backslashes here for "dot backslash", but i guess we still all understand what i wanna say here.

UE4 crashes at beginning stating an issue in StartupModule function of the plugin

Hey @N7Alpha,
I tried incorporating the plugin in a blank C++ project after you updated the plugin to support Android. But it is showing the following error screen while opening the project. I am using UE 4.26 and VS 2019. The error is on line 37 in UnrealLibretro.cpp in the StartupModule function when it tries to initialize SDL.

image

I followed your guide from the readme.

  1. Downloaded the latest source
  2. Used the "using git" method to install it to the project. The setup.sh file ran without any issues and it downloaded all the other dependencies.
  3. The project compiled successfully from Visual Studio.
  4. The project crashed at around 75% with the error message shown in the image above.

Can you please help with this issue?
Thanks!

Gameboy not saving

Sone core such as Muppen keep saves properly but other, like gearboy does not seem to be able to persist saves ? LB's site says the core support saves so some minor oversight might cause them not to persist?

Feature Request: Make VR Optional

It would be helpful if the VR dependencies of this plug-in were optional. There are platforms where VR does not exist, and this plug-in will not compile there.

If it's easier, a "no-vr" branch would work too.

input.ini not created in folder

I've found an issue with the input.ini file
When you packaging an project on UE4.27 is imposible to save and remap the key binding from an UI, the engine do not create the input.ini in the right folder (in C:\Users*****\AppData\Local\YourGameName)
I found this by using the autosetting plugins,
I couldn't save my key bindings....
I realized this happens when i activate UnrealLibretro plugins,
the engine does not create an input.ini file
but it only happens in packaged version, everything works correctly in the editor....

Compatibility issues with UE 5.2

I tried to build Unreal Libretro for UE 5.2 (on Windows 11), but in Source\UnrealLibretro\Private\sdlarch.cpp there is a compilation error: 'FDynamicRHI::RHIUpdateTexture2D': function does not take 5 arguments

            ENQUEUE_RENDER_COMMAND(CopyToUnrealFramebufferTask)( // @todo this triggers an assert on MacOS you can get around it by enqueuing through the TaskGraph instead no idea why this is the case
                [this,
                MipIndex = 0,
                SrcPitch,
                Region = FUpdateTextureRegion2D(0, 0, 0, 0, width, height)]
            (FRHICommandListImmediate& RHICmdList)
            {
                check(this->Unreal.TextureRHI.GetReference());

                RHICmdList.EnqueueLambda([=](FRHICommandList&)
                    {
                        FScopeLock UploadTextureToRenderHardware(&this->Unreal.FrameUpload.CriticalSection);
                        GDynamicRHI->RHIUpdateTexture2D(
                            this->Unreal.TextureRHI.GetReference(),
                            MipIndex,
                            Region,
                            SrcPitch,
                            (uint8*)this->Unreal.FrameUpload.ClientBuffer);

Now the declaration of RHIUpdateTexture2D() requires FRHICommandListBase& RHICmdList as the 1st parameter:

virtual void RHIUpdateTexture2D(
  FRHICommandListBase& RHICmdList, 
  FRHITexture2D* Texture, 
  uint32 MipIndex, 
  const struct FUpdateTextureRegion2D& UpdateRegion, 
  uint32 SourcePitch, 
  const uint8* SourceData) = 0;

I commented out the code to check for more errors, and only found a linking error:

LNK2001 - unresolved external symbol "public: virtual class TUniquePtr<class Audio::IProxyData,struct TDefaultDelete<class Audio::IProxyData> > __cdecl IAudioProxyDataFactory::CreateNewProxyData(struct Audio::FProxyDataInitParams const &)" (?CreateNewProxyData@IAudioProxyDataFactory@@UEAA?AV?$TUniquePtr@VIProxyData@Audio@@U?$TDefaultDelete@VIProxyData@Audio@@@@@@AEBUFProxyDataInitParams@Audio@@@Z)

I'm not sure how to solve those issues, though.

Setting the Bound Controller during PIE doesn't work

I'm just writing this here so I don't forget


I think this can be fixed by conditionally referencing the correct source of truth for which controllers are set. At runtime it should be what the core actually has set and when just setting stuff in the editor you just reference the cached data since a core isn't actually running.

Another idea I had was to coalesce some code by separating core loading from game loading in ULibretroCoreInstance. I decided it wasn't practical, but I think this would help here since you wouldn't have to distinguish your cached settings for the core and the settings the core currently is using at runtime. Since you only reference/modify the settings while the core is loaded. And the caching process would be entirely separated for whenever the core is loaded and unloaded. I think Retroarch probably does the same thing.

Editor crash / closes when exiting VR Preview.

If I run a VR Preview of my Unreal Engine 5.1.1 project, load the Flycast core and run a Dreamcast Game, when I close the VR Preview the Unreal Editor most of the times freezes for a few seconds and automatically closes afterwards.

I could not find in the project log any relevant information about the crash. It happens with VRGameMode and LibretroGameMode. These are the last few lines in the log:

Log after crash

[2023.06.16-13.29.45:819][598]LogProfilingDebugging: Allocated a 1024 x 1024 texture for HMD canvas layer
[...]
[2023.06.16-13.29.46:705][644]Libretro: core/rend/gles/gles.cpp:562 N[RENDERER]: OpenGL version 4.6
[2023.06.16-13.29.46:771][649]Libretro: core/reios/reios.cpp:616 N[REIOS]: -----------------
[2023.06.16-13.29.46:771][649]Libretro: core/reios/reios.cpp:617 N[REIOS]: REIOS: Booting up
[2023.06.16-13.29.46:771][649]Libretro: core/reios/reios.cpp:618 N[REIOS]: -----------------
[try to exit...]
[2023.06.16-13.30.04:529][924]LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
[2023.06.16-13.30.04:529][924]LogWorld: BeginTearingDown for /Game/Maps/UEDPIE_0_LibretroMapCustom
[2023.06.16-13.30.04:574][924]LogSlate: Window 'MyProjectVR Preview [NetMode: Standalone 0]  (64-bit/D3D Shader Model 6) OpenXR Oculus (1.86.0)' being destroyed
[2023.06.16-13.30.04:606][924]LogWorld: UWorld::CleanupWorld for LibretroMapCustom, bSessionEnded=true, bCleanupResources=true
[2023.06.16-13.30.04:606][924]LogSlate: InvalidateAllWidgets triggered.  All widgets were invalidated
[2023.06.16-13.30.04:609][924]LogPlayLevel: Display: Shutting down PIE online subsystems
[2023.06.16-13.30.04:612][924]LogSlate: InvalidateAllWidgets triggered.  All widgets were invalidated
[2023.06.16-13.30.04:641][924]LogAudio: Display: Audio Device unregistered from world 'None'.
[2023.06.16-13.30.04:642][924]LogResonanceAudio: Display: Resonance Audio Listener is shutdown
[2023.06.16-13.30.04:642][924]LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=2
[2023.06.16-13.30.04:643][924]LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=2
[2023.06.16-13.30.04:657][924]LogSlate: Slate User Unregistered.  User Index 8
[2023.06.16-13.30.04:657][924]LogSlate: Slate User Destroyed.  User Index 8, Is Virtual User: 1
[2023.06.16-13.30.04:664][924]LogUObjectHash: Compacting FUObjectHashTables data took   0.94ms
[2023.06.16-13.30.04:679][924]Libretro: Warning: Core 'Flycast' violated libretro spec asked for unkown option 'pvr.rend'
[2023.06.16-13.30.04:679][924]Libretro: Warning: Core 'Flycast' violated libretro spec asked for unkown option 'rend.PerStripSorting'

If I load a core but don't load a game the engine doesn't crash, and in the last log lines Destroying online subsystem appears:

Log without crash

LogProfilingDebugging: Allocated a 1024 x 1024 texture for HMD canvas layer
[...]
LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
LogWorld: BeginTearingDown for /Game/Maps/UEDPIE_0_LibretroMapCustom
LogSlate: Window 'MyProjectVR Preview [NetMode: Standalone 0]  (64-bit/D3D Shader Model 6) OpenXR Oculus (1.86.0)' being destroyed
LogWorld: UWorld::CleanupWorld for LibretroMapCustom, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered.  All widgets were invalidated
LogPlayLevel: Display: Shutting down PIE online subsystems
LogSlate: InvalidateAllWidgets triggered.  All widgets were invalidated
LogAudio: Display: Audio Device unregistered from world 'None'.
LogResonanceAudio: Display: Resonance Audio Listener is shutdown
LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=3
LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=3
LogSlate: Slate User Unregistered.  User Index 8
LogSlate: Slate User Destroyed.  User Index 8, Is Virtual User: 1
LogUObjectHash: Compacting FUObjectHashTables data took   0.95ms
LogPlayLevel: Display: Destroying online subsystem :Context_7
LogWindowsTextInputMethodSystem: Activated input method: English (United States) - (Keyboard).
LogWindowsTextInputMethodSystem: Activated input method: English (United States) - (Keyboard).

Any idea how I can investigate or work around this issue? Is there perhaps any way to pause / unload / destroy the core and then terminate the project?

Thanks!

Crash when trying to load ROM in a subdirectory

Hi there. Thanks for this great library - it's been very useful for a project of mine.

I have quite a few ROMs in my project so I'd like to organise them into subdirectories, however it seems that the library crashes when loading the ROM (with MAME at least) whenever the path contains a slash (I tried forward and backslashes). Leaving the ROM in the top level MyROMs directory works fine. I'm using the Blueprint LibretroCoreInstance.

I just cant get it to work

I know that ive mentioned this before, but i still cant get it to work
Screenshot 2021-05-31 162805

so i suggest adding a full example project with the plugin

Just can't get PUAE working

Just can't get PUAE working. I tried several versions but they all crash. I think they rely on some stuff that isn't implemented yet.

[2021.10.23-22.08.06:639][423]Libretro: Warning: Unhandled env #65572
[2021.10.23-22.08.06:776][437]Libretro: 6888x no FPU: f201 00009000 PC=00f80ca0

[2021.10.23-22.08.06:776][437]Libretro: B-Trap f201 at f80ca0 (000001d782714450)

[Android] Assert fails in internal Unreal Engine OpenGL ES code

D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: === Critical error: ===
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: 
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: Assertion failed: ContextType >= 0 [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/OpenGLDrv/Private/OpenGLDevice.cpp] [Line: 159] 
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: 
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8DE8FCEC libUE4.so(0x0000000009686CEC)!FDebug::CheckVerifyFailedImpl(char const*, char const*, int, char16_t const*, ...)  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A92C27B90 libUE4.so(0x000000000E41EB90)!FOpenGLDynamicRHI::GetContextStateForCurrentContext(bool)  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A92CD6420 libUE4.so(0x000000000E4CD420)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A92C65D54 libUE4.so(0x000000000E45CD54)!RunOnGLRenderContextThread(TUniqueFunction<void ()>, bool)  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A92C84A2C libUE4.so(0x000000000E47BA2C)!FOpenGLDynamicRHI::RHIUpdateTexture2D(FRHITexture2D*, unsigned int, FUpdateTextureRegion2D const&, unsigned int, unsigned char const*)  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9F39F0 libUE4.so(0x00000000081EA9F0)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9F337C libUE4.so(0x00000000081EA37C)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9E3904 libUE4.so(0x00000000081DA904)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9E139C libUE4.so(0x00000000081D839C)!LibretroContext::core_video_refresh(void const*, unsigned int, unsigned int, unsigned int)  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8CA12CDC libUE4.so(0x0000000008209CDC)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8CA129B0 libUE4.so(0x00000000082099B0)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9CF7F4 libUE4.so(0x00000000081C67F4)!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<true>, void (void const*, unsigned int, unsigned int, unsigned long)>::operator()(void const*, unsigned int, unsigned int, unsigned long) const  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9CFBBC libUE4.so(0x00000000081C6BBC)!func_wrap_video_refresh1(void const*, unsigned int, unsigned int, unsigned long)  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A82E5E8F0 5C54690809C44490B44B60F71570C51D.so(0x00000000000478F0)!retro_run()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8CA18264 libUE4.so(0x000000000820F264)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8CA16230 libUE4.so(0x000000000820D230)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9CA5E4 libUE4.so(0x00000000081C15E4)!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<true>, void ()>::operator()() const  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8C9CA594 libUE4.so(0x00000000081C1594)!FLambdaRunnable::Run()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8DD54E74 libUE4.so(0x000000000954BE74)!FRunnableThreadPThread::Run()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007A8DC31D94 libUE4.so(0x0000000009428D94)!FRunnableThreadPThread::_ThreadProc(void*)  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007B3C775F48 libc.so(0x0000000000092F48)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: [Callstack] 0x0000007B3C706C88 libc.so(0x0000000000023C88)![Unknown]()  []
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: 
D/UE4     : [2022.02.06-19.29.00:669][  0]LogAndroid: Error: 

I'll fix this probably just documenting it here.

This crash happens immediately on loading an app with a OpenGL ES hardware accelerated core somewhat rarely like 1 in 10 startups. I suspect EGL might not be entirely threadsafe on Android, or Unreal does some jank where it probes threads and thinks the context I made is one used multithreaded rendering. The surrounding code in the assert suggests it could be something like that. I think if I just block in the Libretro Core thread's until Unreal Engine finishes loading all of its OpenGL ES context's that would probably workaround the issue in either case.

MAME Freeze Editor but not crash

CORE: mame2003_plus_libretro.dll
ROMS:

  • Vs. Super Mario Bros - MAME4droid
  • PONG

ROM Crashing all time:
Gyruss

Thank you for the awesome plugin!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.