mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
c78a8511b7
A still image drawn behind the game, filling whatever the letterbox or pillarbox leaves over -- the trick vertical shmups use on horizontal displays, where the dead space carries artwork so it reads as designed rather than as a limitation. MAME calls the same idea bezel artwork. Drawn across the whole drawable before the game quad, which is simpler and safer than filling two margin strips: no margin arithmetic, it covers pillarbox and letterbox alike, and the frame paints over the centre. The reason this is the right shape and present_edge_fill was not: edge fill stretches one edge COLUMN of the live frame across the margin. That suits a flat menu backdrop and turns track geometry into horizontal smears, so it needs to know whether the current frame is a menu -- a question it answers with force_4_3, which is only ever set by the widescreen path. A still image has no such question. It looks the same in a race and in a menu, which is the point. Loaded after the GL context exists (the first attempt sat next to tex_pack_init, which runs before the window, so g_gl_active was false and it silently never loaded). Decoded with stb_image, already linked for the HD texture pack. A relative path resolves against the disc directory, matching the pack convention, so artwork can sit beside the disc. Verified on a 7680-wide maximised window with 4:3 content: margins that were pure black now carry the image on both sides, with the frame untouched in the middle. Known limits: the image is stretched to the drawable, so an aspect that does not match the window will distort (cover-crop is a small follow-up), and this has only been exercised in 4:3 pillarbox, not with the widescreen mod active. For WipEout 3 the team wallpapers by MotorcycleEmptiness (awesome-wipeout.github.io) suit this exactly; the shipped default is a placeholder gradient used to verify the path, not final art. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>