Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: OSD rotation for vertical arcades #59

Closed
jotego opened this issue Mar 2, 2019 · 25 comments
Closed

Feature request: OSD rotation for vertical arcades #59

jotego opened this issue Mar 2, 2019 · 25 comments

Comments

@jotego
Copy link
Member

jotego commented Mar 2, 2019

I’d like to request for the OSD to track screen orientation. The core could use a letter in the config screen to inform about the default orientation. The OSD should follow suit. If the user selects to rotate the screen, then both the game and the OSD should rotate together.
This is important for vertical arcade cores.

@the1ross
Copy link

If there's anyway to have this be supported via the analogue output as well, I'd be a very happy bunny.

@jotego jotego closed this as completed Mar 22, 2019
@jotego jotego reopened this Mar 22, 2019
@sorgelig
Copy link
Member

rotation requires frame buffering which contradict the analog video which is supposed to output original video.
You may use vga_scaler option, so you will get HDMI video through VGA, and then you can have rotation.

@jotego
Copy link
Member Author

jotego commented Aug 20, 2019

Hi Sorgelig,

The OSD doesn't require a frame buffer to be rotated. You just have to switch H and V vectors on the scan register. This was originally done by Gyurco for MiST and I have used it for the MiST version of my cores since then. I have started modifying it for MiSter here in case you want to have a look (not finished yet). The next CAPCOM core update will feature rotated OSD.

Gyurco also proposed an option to rotate only the joystick inputs. This would serve people who want to use an analog screen but cannot rotate it, so they rotate the controls instead. I have not merged his pull request yet but I will.

To rotate the OSD means having a ROTATE signal (bus) going up from the emu module, as the OSD is one level up in MiSTer.

@eskwadrat
Copy link

I second this feature request. Putting so much team effort into implementing arcade cores where most of these natively use portrait mode display, while not having OSD rotation along with the core image rotation make not much sense, specially for those of us who build MISTer nano board into real arcade cabinet w/vertically positioned monitor.

@sorgelig
Copy link
Member

sorgelig commented Sep 29, 2019

After re-checking the OSD code and refreshing my memory i can tell, OSD rotation is NOT possible in its current state. The size of OSD 256x128 which is stretching at some extent. But after rotation the width 256 will become the height. Most arcades have height 200-224 pixels which obviously can't hold the 256 pixels. So it won't be a simple rotation. It will require complete OSD redesign on all levels in HPS and FPGA.

I close this issue as "impossible to fix."
In the future MiSTer may get some more advanced and more flexible OSD which will be able to rotate and accommodate smaller screen sizes. And that will be another story...

@eskwadrat
Copy link

Who says we need 256 pixels for it? Half of this is more than enough to navigate between arcade core names as for these the OSD rotation applies only. None of console cores users care nor will use rotation for OSD.

@sorgelig
Copy link
Member

You didn't understand what i've wrote.
The WIDTH of OSD won't fit. So it will need to re-design the options in all menus to fit the narrower width.

@eskwadrat
Copy link

eskwadrat commented Sep 29, 2019

For the record, I did understanding what you're wrote. Thanks for all great work and more courtesy to contributors.

@jotego
Copy link
Member Author

jotego commented Sep 29, 2019 via email

@eskwadrat
Copy link

eskwadrat commented Sep 29, 2019

I understand the arcade core low resolution limitation but all Mister arcade cores I tried are rescaled to fit the higher res screen with OSD centered occupying just part of it. This looks like OSD is already overlayed on top of rescaled arcade picture, so with that respect the reasoning behind not being able to fit OSD after rotation in unclear to me.

@sorgelig
Copy link
Member

Convince all users using VGA output with native resolution and use only HDMI with at least 1280x720, then we will assume 1280x720 as lowest resolution. Then OSD will definitely fit ;)

@eskwadrat
Copy link

You're might be missing the point of this request. The OSD rotation is added value only to those who plan using monitor in vertical (portrait) orientation in multi arcade core setup. So there is no need to convince anyone else besides this group because everyone else keep using what is available today with their horizontal screen where OSD is oriented horizontally.

@sorgelig
Copy link
Member

Nope, i'm not missing any point. Those who want to use vertical setup, usually also want to use VGA output with native resolution. So with vertical setup you have screen width 192-224 (depending on arcade) while OSD width is 256.

@eskwadrat
Copy link

eskwadrat commented Oct 1, 2019

Nobody wants to use vertical mode in a long run because of exactly OSD not being rotated, not mentioning serious color banding for VGA output in Vertical mode for most arcade cores. Both make this mode combination useless. And none has been addressed so far, not even acknowledged except one other MISTer user besides me, instead it became subject of debate which took it nowhere. So for vertical mode analog output arcade builders MISTer simply does not exist. That's the whole point.

@yxkalle
Copy link
Contributor

yxkalle commented Oct 1, 2019

I could make a vertical font, if it help anybody. ;) All text would be pillars, though.

@yxkalle
Copy link
Contributor

yxkalle commented Oct 1, 2019

Default Font rotated left (text will be read top to bottom)
Default Font rotated right (text will be read bottom to top :P)

@sorgelig
Copy link
Member

sorgelig commented Oct 1, 2019

Well, i think i will make rotated OSD. For low resolutions it will display every other pixel. It won't be nice looking in such mode, but at least readable. Probably with custom font it can look a little better.

@yxkalle
Copy link
Contributor

yxkalle commented Oct 3, 2019

Misc_4x8

4x8 font for MiSTer

Download


@sorgelig sorgelig removed the wontfix label Oct 3, 2019
@sorgelig sorgelig reopened this Oct 3, 2019
@sorgelig
Copy link
Member

implemented

@jotego
Copy link
Member Author

jotego commented Oct 20, 2019 via email

@sorgelig
Copy link
Member

no changes in emu. OSD rotation is defined in MiSTer.ini

@jotego
Copy link
Member Author

jotego commented Oct 21, 2019 via email

@sorgelig
Copy link
Member

Yes, ini allows to define either for all cores or per-core. It's basic ini functionality.

@sorgelig
Copy link
Member

sorgelig commented Oct 21, 2019

Primarily OSD rotation is designed for monitors fixed in vertical position, so defining it for all cores is original intention for this option.
Basically, if you want to use vertical mode, then you need to build a separate MiSTer just for vertical arcades and put it into specific cabinet/case with vertical display. And then you won't want to rotate the OSD per core.

@LuckyNES
Copy link

Use analog io board and have a second small HDMI display exclusively for picking games.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

6 participants