GTA Vice City (reVC) on a GA36 / R36S Clone running GoodLuckOS — Black Screen, Looking for Help
Hi everyone!
I'm trying to get GTA Vice City running natively on a GA36/R36S-style handheld running GoodLuckOS, and I've hit a problem I haven't been able to solve. I'd appreciate help from anyone familiar with reVC, PortMaster, SDL2, OpenGL ES, or Mali-400 GPUs.
Device and software
- Device: GA36 / R36S clone, GA36-MB v1.1
- SoC: Allwinner A23/A33 family
- CPU architecture: 32-bit ARM (armv7l / armhf)
- GPU: Mali-400
- OS: GoodLuckOS 0.1.0
- Kernel: Linux 7.2.9
- Graphics: OpenGL ES 2.0, Mesa 26.1.8
- Project: reVC (reverse-engineered GTA Vice City engine)
I'm building an experimental port from source rather than simply copying a package intended for another handheld.
What I've done
I built an experimental reVC package for the device and created a launcher for GoodLuckOS.
Initially, I encountered a shader-related problem involving CreateRimLightPipes, neoRimSkinShader, and the u_boneMatrices[64] uniform array.
As an experiment, I changed the bone matrix array size from 64 to 48 in both:
src/extras/shaders/neoRimSkin.vert
src/extras/shaders/obj/neoRimSkin_vert.inc
I also clamped bone indices to 47 or lower. The second file is important because it is used by the active graphics path in my build.
This was an experimental workaround, not a confirmed fix.
Current behavior
The game starts, but I get a black screen.
- I hear a very short sound during startup, but no recognizable Vice City music.
- Sometimes the game exits back to the GoodLuckOS menu.
- Sometimes it stays on a black screen.
- Sometimes it closes after a while.
The latest log reports:
OpenGL version: OpenGL ES 2.0 Mesa 26.1.8
It also shows the game state reaching GS_FRONTEND, followed by messages such as LOAD frontend1 and LOAD frontend2.
The latest log does not show the earlier shader error or an explicit segmentation fault, but I still don't have a working picture on screen. Reaching the frontend state doesn't necessarily mean that rendering is working.
There are also some EGL warnings in the log, including EGL_BAD_DISPLAY and EGL_BAD_PARAMETER. I don't know whether they are related to the actual failure.
What I need help with
- Has anyone successfully run reVC on a Mali-400 GPU with OpenGL ES 2.0?
- Could the black screen be caused by EGL/SDL2 KMSDRM presentation, shader compilation, or another graphics compatibility issue?
- Is reducing
u_boneMatrices from 64 to 48 a reasonable workaround for this hardware, or could it introduce another problem?
- What specific log output, OpenGL capabilities, or runtime tests would you collect next to identify the actual failure?
I'm happy to run targeted tests and provide relevant source files or logs.
I own the game files needed for testing; I'm not trying to distribute copyrighted game assets.
The main question is whether this is a fixable graphics/runtime issue on this hardware, and what the best next diagnostic step would be. I'd rather identify the underlying cause than keep trying random patches.
Thanks!