[GH-ISSUE #272] Ren’Py apps crash after splash screen #244

Closed
opened 2026-03-03 15:31:59 +03:00 by kerem · 5 comments
Owner

Originally created by @HappyRespawnanchor on GitHub (Dec 22, 2024).
Original GitHub issue: https://github.com/LiveContainer/LiveContainer/issues/272

Describe the issue

In live container, any app made with the Ren’Py engine crashes immediately after the splash screen is displayed.

If sideloaded directly in SideStore, it runs normally.

Instructions to reproduce

https://github.com/user-attachments/assets/955479f0-1fd6-4a85-8f77-f701930a333c

What version of LiveContainer are you using?

Version 3.1.0-release (main/c586e79)

Other

https://renpy.org/doc/html/ios.html

Originally created by @HappyRespawnanchor on GitHub (Dec 22, 2024). Original GitHub issue: https://github.com/LiveContainer/LiveContainer/issues/272 ### Describe the issue In live container, any app made with the [Ren’Py engine](https://renpy.org) crashes immediately after the splash screen is displayed. If sideloaded directly in SideStore, it runs normally. ### Instructions to reproduce https://github.com/user-attachments/assets/955479f0-1fd6-4a85-8f77-f701930a333c ### What version of LiveContainer are you using? Version 3.1.0-release (main/c586e79) ### Other https://renpy.org/doc/html/ios.html
kerem 2026-03-03 15:31:59 +03:00
Author
Owner

@hugeBlack commented on GitHub (Dec 26, 2024):

Well, after some investigation, I found that this is an issue with dlsym. DDLC linked against both OpenGLES and MetalENGLE , which both contain OpenGL api. If directly sideloaded, dlsym correctly returns OpenGL functions in MetalENGLE, while in LiveContainer, OpenGLES functions are returned, and since no OpenGL context is setup, glGetString returned 0 and DDLC crashed.

If I force dlsym to return functions in MetalENGLE, DDLC can launch without issue. I'm looking for a way to make dlsym behave "correctly" like when being sideloaded.

<!-- gh-comment-id:2562938959 --> @hugeBlack commented on GitHub (Dec 26, 2024): Well, after some investigation, I found that this is an issue with `dlsym`. DDLC linked against both OpenGLES and MetalENGLE , which both contain OpenGL api. If directly sideloaded, `dlsym` correctly returns OpenGL functions in MetalENGLE, while in LiveContainer, OpenGLES functions are returned, and since no OpenGL context is setup, `glGetString` returned 0 and DDLC crashed. If I force `dlsym` to return functions in MetalENGLE, DDLC can launch without issue. I'm looking for a way to make `dlsym` behave "correctly" like when being sideloaded.
Author
Owner

@HappyRespawnanchor commented on GitHub (Dec 28, 2024):

Well, after some investigation, I found that this is an issue with dlsym. DDLC linked against both OpenGLES and MetalENGLE , which both contain OpenGL api. If directly sideloaded, dlsym correctly returns OpenGL functions in MetalENGLE, while in LiveContainer, OpenGLES functions are returned, and since no OpenGL context is setup, glGetString returned 0 and DDLC crashed.

If I force dlsym to return functions in MetalENGLE, DDLC can launch without issue. I'm looking for a way to make dlsym behave "correctly" like when being sideloaded.

Before this issue is resolved, could you add a debug option to select which library (MetalENGLE or OpenGLES) OpenGL functions are returned from for testing? :)

<!-- gh-comment-id:2564151885 --> @HappyRespawnanchor commented on GitHub (Dec 28, 2024): > Well, after some investigation, I found that this is an issue with `dlsym`. DDLC linked against both OpenGLES and MetalENGLE , which both contain OpenGL api. If directly sideloaded, `dlsym` correctly returns OpenGL functions in MetalENGLE, while in LiveContainer, OpenGLES functions are returned, and since no OpenGL context is setup, `glGetString` returned 0 and DDLC crashed. > > > > If I force `dlsym` to return functions in MetalENGLE, DDLC can launch without issue. I'm looking for a way to make `dlsym` behave "correctly" like when being sideloaded. Before this issue is resolved, could you add a debug option to select which library (MetalENGLE or OpenGLES) OpenGL functions are returned from for testing? :)
Author
Owner

@hugeBlack commented on GitHub (Dec 28, 2024):

It's fixed, please try https://github.com/hugeBlack/LiveContainer/actions

<!-- gh-comment-id:2564237273 --> @hugeBlack commented on GitHub (Dec 28, 2024): It's fixed, please try https://github.com/hugeBlack/LiveContainer/actions
Author
Owner

@HappyRespawnanchor commented on GitHub (Dec 28, 2024):

It's fixed, please try https://github.com/hugeBlack/LiveContainer/actions

Thanks : )

感谢,确实解决了,话说hugeBlack/LiveContainer的commit未来会被推到khanhduytran0/LiveContainer吗

<!-- gh-comment-id:2564278573 --> @HappyRespawnanchor commented on GitHub (Dec 28, 2024): > It's fixed, please try https://github.com/hugeBlack/LiveContainer/actions Thanks : ) 感谢,确实解决了,话说hugeBlack/LiveContainer的commit未来会被推到khanhduytran0/LiveContainer吗
Author
Owner

@hugeBlack commented on GitHub (Dec 28, 2024):

会的,等内容足够多了就会合并到这个仓库里面

<!-- gh-comment-id:2564282554 --> @hugeBlack commented on GitHub (Dec 28, 2024): 会的,等内容足够多了就会合并到这个仓库里面
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LiveContainer#244
No description provided.