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

Integer-scaling breaks when Rotate screen is On #726

Open
dfilskov opened this issue Jul 10, 2024 · 7 comments
Open

Integer-scaling breaks when Rotate screen is On #726

dfilskov opened this issue Jul 10, 2024 · 7 comments
Labels
enhancement New feature or request

Comments

@dfilskov
Copy link

dfilskov commented Jul 10, 2024

Integer-scaling works nicely when Rotate screen is Off ...

but when Rotate is On the integer-scaling is applied before the rotation instead of after.

That makes the pixels un-even / not integer-scaled resulting in shimmering and incorrect graphics.

I believe this is the case for most - if not all - cores with rotation.

@jotego jotego transferred this issue from jotego/jtbin Jul 10, 2024
@jotego jotego added the enhancement New feature or request label Jul 10, 2024
@jotego
Copy link
Owner

jotego commented Jul 10, 2024

Is this specific to JT cores or a general MiSTer problem?

@dfilskov
Copy link
Author

dfilskov commented Jul 10, 2024

I'm not sure.

The issue doesn't seem to be there in e.g. the Atari Lynx core but it might be a coincidence (I use a 1920x1920 monitor btw.)

I'm talking only about cores with both screen rotation in their settings - and integer-scaling. Not easy to find.

I'll keep testing to see if I can find a non -JT core with the same issue (but if I find one I won't know if it's a general issue or another coincidence.)

@dfilskov
Copy link
Author

An easy way to check if integer-scaling works is to turn on Horz filter (in Video processing) with

LCD_NN_Type0_020
or
LCD_NN_Type1_020

The pixel outlines will make a grid/mesh which is clearly even/symmetrical or uneven.

@dfilskov
Copy link
Author

dfilskov commented Jul 10, 2024

E.g. Arkanoid doesn't have integer-scaling. That really shows with the LCD filter.

Screenshot_20240710-215430~2

@dfilskov
Copy link
Author

dfilskov commented Jul 11, 2024

sorgelig writes:

"If i remember right scaling is depend in rotation ... framework receives rotated image, so it scales the image which is already rotated"

But then I don't see how it can not work on JT cores. If the framework integer-scales the rotated signal it should work.

Unless there's a bug in the framework that only happens when a core rotates its video signal before sending it on for integer-scaling. But that doesn't make sense.

@dfilskov
Copy link
Author

Not sure if this issue is related but e.g. Bomb Jack and Up'n'Down surprisingly changes sizes when I rotate them on my square resolution (1920x1920) both when scaling is set to Original and Fullscreen.

I'd expect a rotated core video signal to stay the exact same size no matter what the scaling is set to on a square monitor.

There must be something wrong with the scaling somehow. Perhaps it happens when the pixel-size isn't square and the uneven ratio is somehow being applied to the scaling in the wrong direction when the signal is rotated.

@dfilskov
Copy link
Author

dfilskov commented Aug 2, 2024

Scandoubler CRT scanlines don't work either.

Please check this video of Dimahoo to see for yourself that scanlines does not appear when you turn on scandoubler:

Dimahoo_scanlines_and_integer_broken.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: No status
Development

No branches or pull requests

2 participants