Can I Rotate for Split Screen with my Cocktail Table

I’ve spent that last few days fine tuning my RetroArch for NES and SNES and was wondering if there is an option to Rotate or Split the screen for two person vs games?

Similar to this picture.

Yes, there’s a shader that can do that, located at shader_cg/misc/cocktail-table.cg. You may have to fine-tune the locations of the screens using the shader parameters menu for pretty much anything other than NES/SNES, though.

I’m assuming that the only way to do that is to execute RetroArch.exe with --appendconfig with just the shader as the settings in the cfg file?

I have two questions.

  1. Is it possible to apply two shaders at the same time? I would like to combine cocktail-table.cp with 4xbr-hybrid-crt.cp shaders.
  2. I noticed that when I run the --appendconfig command it changes the default cfg to that shader. How can I keep the current config as in and just apply the new config to just a few games.

Using appendconfig will indeed override your other one instead of adding to it. Combining shaders is a little more fiddly and there are a few complications involved in what you’re wanting to do.

Smoothing shaders like xBR need to come before the cocktail-table shader and you’ll have to go ahead and set the scale to 4x to match the scale factor the shader expects. However, because the cocktail-table shader doesn’t preserve integer scaling, the scanline effect is going to be all wrong, so you’ll have to go into the shader parameters and fiddle with the image height until you find something that looks decent. On my screen, with integer scale OFF and aspect ratio of 16:9, a height of -1.125 makes the scanlines look even:

You can use the cgp I made. Just save it as something in your ‘shaders_cg’ directory:

shaders = "2"
feedback_pass = "0"
shader0 = "crt/shaders/4xbr-hybrid-crt.cg"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "4.000000"
scale_type_y0 = "source"
scale_y0 = "4.000000"
shader1 = "misc/cocktail-table.cg"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
parameters = "height;width;location"
height = "-1.125000"
width = "2.000000"
location = "0.750000"

For other cores, you can just change those last three lines to whatever makes it all fit.

That is perfect what I was needing. For me the last three settings are

height = “-1.100000” width = “1.900000” location = “0.750000”

It fits perfect for our screen.


Awesome. I’m glad that got you fixed up :slight_smile: