Fix RetroArch black video with audio after returning to the app on Android
Do not change ROMs when audio and input still advance the same session. Pause, open the Quick Menu, and capture one verbose log while reproducing Home and return. If the menu also fails to draw, restart RetroArch once with default video settings and no shader; if only content is black, isolate the core and renderer. A background transition can recreate the Android surface without proving content corruption.
Do this in order
- 01
Record Android, RetroArch, core, content receipt, video driver, shader, orientation, and whether audio, input, and emulation time continue.
- 02
Create an in-game save, pause, and reproduce once with Home and return while verbose logging is enabled.
- 03
Open Quick Menu: if it draws, the frontend surface exists and the failure is narrower than the whole app; if it does not, test the frontend path first.
- 04
Close content safely, disable the shader, restore default video synchronization/driver settings, and cold-launch the same authorized content.
- 05
Compare one other known-good core or authorized title without changing the original files, then classify frontend, core, renderer, or content scope.
- 06
If the process restarted, inspect Android battery/memory policy and restore progress from the in-game save; if the session lived, retain the log and change only one video option per test.
Decision and diagnostic table
| Observation | Likely boundary | Next action |
|---|---|---|
| Quick Menu draws over black content | Core or content video output | Test core/default renderer |
| Menu and content are both black | Frontend surface or video driver | Cold-start with defaults and log |
| App opens a fresh session | Android removed the process | Review lifecycle policy; restore normal save |
| Video returns but audio crackles | Timing or performance after resume | Measure speed before latency changes |
Audio proves less than it seems
Continuing sound suggests the core or process may still be alive, but it does not prove that Android retained the same drawing surface. Test the Quick Menu and input rather than treating audio as a complete health signal.
Android owns the surface lifecycle
Activities move through pause, stop, and resume, and a visible drawing surface can be destroyed and recreated. Memory pressure or device policy can also remove the entire process, which is a different recovery case.
Change one video layer
A shader, video driver, threaded-video choice, core renderer, and display synchronization are separate layers. Start with defaults, capture a clean log, and add back one setting only after a successful cold launch.
Use only ROM, BIOS, device, CHD, artwork, audio, and other media you created, dumped lawfully, or received under permission covering your use. Technical identity, a working emulator, and a published hash do not grant content rights.