Fix stretched arcade pixels with RetroArch aspect ratio and integer scaling on Android
Start with Video → Scaling → Aspect Ratio set to Core Provided, leave custom viewport and shaders off, and observe one known screen. Enable Integer Scale only if whole-number pixel enlargement is worth unused borders on that display. Aspect ratio controls the picture's shape; integer scaling controls enlargement. Neither fixes wrong core geometry, cropped overscan, rotation, or a shader preset by itself.
Do this in order
- 01
Record the Android device resolution and orientation, RetroArch package/version, core/version, content, and current Video → Scaling values.
- 02
Disable custom viewport, video filter, and shader preset temporarily, then set Aspect Ratio to Core Provided.
- 03
Check a known circle, square, text grid, or test pattern before treating black borders as a defect.
- 04
Enable Integer Scale and compare pixel regularity, border size, and whether the complete image remains visible.
- 05
If the image is cropped or rotated, diagnose overscan and rotation separately rather than forcing a custom aspect ratio.
- 06
Save the smallest scoped override only after relaunching the same content and confirming menus and touch controls still fit.
Decision and diagnostic table
| Control | What it changes | What it does not prove |
|---|---|---|
| Core Provided aspect | Displayed shape requested by the core | Historically correct pixels for every title |
| Integer Scale | Whole-number enlargement behavior | Full-screen fill without borders |
| Custom viewport | Manual size and position | Correct geometry after an update |
| Shader/filter | Post-processing and sampling | Correct aspect or complete overscan |
Shape and scale solve different problems
The core reports geometry and a preferred aspect; RetroArch chooses a viewport on the physical display. Integer scaling can make pixel sizes more regular, but a phone whose dimensions are not exact multiples may retain borders. Stretching those borders away changes shape or scale policy.
Build a clean baseline before judging pixels
Shaders, bilinear filtering, crop settings, custom viewports, and rotation can each alter the final image. Temporarily removing them lets one setting own each observation and prevents a preset from masking a geometry error.
Save only after checking Android controls
A portrait display, cutout, or touch overlay can reduce the usable viewport. Verify gameplay, menu access, and touch targets after the video change before saving a game or core override.
Video scaling does not change content rights. Test with your own dump or an explicitly authorized game and do not distribute copyrighted screenshots, artwork, ROM, BIOS, CHD, or shader assets without permission.