MiSTer-devel / Main_MiSTer

Main MiSTer binary and Wiki
GNU General Public License v3.0
3.06k stars 331 forks source link

Feature Request : Global 90/270 Screen Rotation #478

Closed rgavril closed 2 years ago

rgavril commented 3 years ago

An ini option to rotate the screen (game output and osd) 90/270 degrees would be very useful in at least two scenarios:

sorgelig commented 3 years ago

OSD rotation is already implemented. Video rotation is implemented in arcade cores. For other cores it's practically impossible due to large demanded resources and memory bandwidth. MiSTer is primarily targeted for TV output which is normal horizontal position.

I can give you a hint for large display. Use video projector from the back. So you can project it to a matte glass with basically any aspect ratio you want. Today you can find many mini-projectors with FHD resolution.

rgavril commented 3 years ago

Was imagining that, since vertical cores can be rotated it is possible to do the same for horizontal cores, after all vertical or horizontal game is just a human made classification.

As you figure out I’m interested in playing arcade cores on this setup.

I noticed that CPS 1/2 core does support screen rotation (at least vertical games) and to my knowledge is quite demanding from the resources point of view.

But think I got your point, is not possible to do it in Main as a global option, each core needs to implement it, which is a pain :(

jotego commented 2 years ago

The CPS core supports screen rotation. If you start a vertical game, the option will appear in the OSD. Otherwise, the option is not shown. If you are referring to screen flip, then you just have to go into the DIP settings of each game to enable the flip mode. In CPS2 DIP settings are in the service menu, into which you enter by either pressing F2 or by selecting the test OSD item.

rgavril commented 2 years ago

Thanks @jotego the issue is not about vertical games, I would like to use rotation for horizontal games too.

My target is to use a 16:9 display in vertical position inside my custom arcade cabinet. By covering the top/bottom parts of the screen with the cabinet (behind control panel and marquee) I would end up with a square aspect ratio screen in which I can display any vertical or horizontal game.

For example: A 43'' 16:9 display can be used as an 29.8'' 1:1 display. That will translate to a virtual 26.3'' display for 4:3 and 3:4 games.

sidelayout

jotego commented 2 years ago

Indeed, for such a case we would need a global setting. If the OSD rotation setting (in the mister.ini file) was readable from the core, then the core could adapt to this by always showing the rotate OSD option.

sorgelig commented 2 years ago

I'm closing this issue as it's not possible to rotate the screen in ALL cores.