I was doing this myself (and with Marvel Vs. Capcom, too) and you have to create a game-specific .cfg in your Retroarch config file with custom viewports. Here’s mine (using MAME core) (in \RetroArch\config\MAME\mvsc.cfg):
My personal overlay setting
input_overlay = ":\overlays\borders\mvsc\mvsc.cfg"
input_overlay_enable = "true"
input_overlay_opacity = "1.000000"
input_overlay_scale = "1.000000"
sets aspect ratio from default 22 (core-provided) to 23 (custom) and sets scale to be 1-pixel-specific
aspect_ratio_index = "23"
video_scale_integer = "false"
sets the width, height and x/y location of the screen. (x & y = position of top left corner of the game viewport)
custom_viewport_width = "1200"
custom_viewport_height = "900"
custom_viewport_x = "361"
custom_viewport_y = "95"
^those x & y positions worked for a 1920×1080 resolution using that exact overlay and using crt-geom shader (with the parameters tweaked slightly to make the curvature line up beautifully).
You (and others) might encounter the same problem I did, in that no matter how many times you set this as a game override (to override Retroarch’s default retroarch.cfg) it would revert back to the default config, and screw up the screen positioning. In which case, change Settings ► Configurations ► Save configuration on exit to “off” and remove a few lines from retroarch.cfg (be careful this might wreck your other settings and games, but I removed the following lines to stop Retroarch overriding its own overridings…)
aspect_ratio_index
video_scale_integer
video_aspect_ratio
video_scale
custom_viewport_width
custom_viewport_height
custom_viewport_x
custom_viewport_y
I just keep all of those in game-specific override .cfg’s (mainly MAME cabinet games) within \RetroArch\config\ [emulator] \ [game].cfg)