Visible refresh 50/60Hz

Page 1/2
| 2

By ro

Scribe (4708)

ro's picture

11-07-2022, 09:12

Hai,

I was wondering why there's no visible screen change in openMSX when switching between 50/60Hz display.
aka vdp(10)=2 / vdp(10)=0

Couldn't find any useful info on that, am I missing something?

Login or register to post comments

By Moniz

Champion (399)

Moniz's picture

11-07-2022, 14:04

probably because the screen youre watching doesn't change at all, it doesnt get a different signal (50/60hz). the change in speed is different though

By sdsnatcher73

Prophet (3395)

sdsnatcher73's picture

11-07-2022, 14:57

ro wrote:

Hai,

I was wondering why there's no visible screen change in openMSX when switching between 50/60Hz display.
aka vdp(10)=2 / vdp(10)=0

Couldn't find any useful info on that, am I missing something?

openMSX does not render the borders. Displays that supports 50/60Hz switch will show taller borders connected to a real MSX because the VDP writes more lines but the software still uses only 192 (mostly).

By Grauw

Ascended (10604)

Grauw's picture

11-07-2022, 15:25

At 60 Hz the VDP has a 1137 × 243 display area, and at 50 Hz a 1137 × 294 display area, both scaled to a 4:3 window aspect ratio. The active display area of the VDP for both is 1024 × 212. A television will have some overscan of the borders, but it will still show more vertical lines at 50 Hz than it does at 60 Hz.

If the vertical height is to be preserved, this would mean windows of 648 × 486 (60 Hz) and 784 × 588 (50 Hz). However openMSX uses a fixed size 640 × 480 window, cuts off parts of the border as overscan, and uses a fixed pixel aspect ratio matching 60 Hz (it’s a user setting).

On a real TV at 50 Hz the height of the screen is squashed so that more lines become visible, and as a result the pixel aspect ratio changes from ~9:8 to ~7:5. OpenMSX doesn’t do this because scaling the height would make the lines less sharp. It does not scale the width either to retain the 50 Hz pixel aspect ratio, because this would not fit in the 640 × 480 window (width would need to be at least 705 pixels). Changing the actual window size is not really desirable either, this is usually pretty slow on the host OS, and imagine if the MSX would do this frequently.

So the problem is a bit of a practical one, and the choice was made to just display things with the 60 Hz ratios and display areas always, only the refresh frequency changes.

I do think it would be nice though if openMSX had an option to emulate 50 Hz more accurately though, where the best option is probably to scale vertically. It would allow artwork to be designed for the 50 Hz pixel aspect ratio, allow overscan display at 50 Hz to be tested in openMSX, allow software developers to see the border colour change for a larger portion of display area (which they often use for speed measurements), and of course, be more obvious whether we are in 50 or 60 Hz mode.

By ro

Scribe (4708)

ro's picture

11-07-2022, 15:25

In other words, openMSX emulates computers, not monitors Smile
So, the bad news: openMSX doesn't support 50/60Hz display scaling shizl
the good news: now, I know.

thanx for chiming in, guys

By Grauw

Ascended (10604)

Grauw's picture

11-07-2022, 15:29

ro wrote:

In other words, openMSX emulates computers, not monitors Smile

That’s a good way to put it Smile.

Maybe in the future, in an effort to have more advanced emulation of monitors, this could be taken along together with fancy CRT monitor shaders which also render various shadow masks, nicer phosphor scanlines, etc.

By mars2000you

Enlighted (6259)

mars2000you's picture

11-07-2022, 15:45

sdsnatcher73 wrote:
ro wrote:

Hai,

I was wondering why there's no visible screen change in openMSX when switching between 50/60Hz display.
aka vdp(10)=2 / vdp(10)=0

Couldn't find any useful info on that, am I missing something?

openMSX does not render the borders. Displays that supports 50/60Hz switch will show taller borders connected to a real MSX because the VDP writes more lines but the software still uses only 192 (mostly).

The only emulator that emulates that is the unreleased version of blueMSX, often called version 2.9.0.

You must choose the Direct3D display driver to be able to choose a specific aspect ratio (Auto, Stretch, NTSC, PAL, 1:1). Several cropping types are also available.

By ro

Scribe (4708)

ro's picture

11-07-2022, 16:44

hey Mars, earlier I test it on BM too. But thaz 2.8 version. So, euh... where do I get this 2.9 version eh? Smile
(I use both openMSX and Blue, mainly for testing)

By max_iwamoto

Hero (597)

max_iwamoto's picture

11-07-2022, 16:46

mars2000you wrote:
sdsnatcher73 wrote:
ro wrote:

Hai,

I was wondering why there's no visible screen change in openMSX when switching between 50/60Hz display.
aka vdp(10)=2 / vdp(10)=0

Couldn't find any useful info on that, am I missing something?

openMSX does not render the borders. Displays that supports 50/60Hz switch will show taller borders connected to a real MSX because the VDP writes more lines but the software still uses only 192 (mostly).

The only emulator that emulates that is the unreleased version of blueMSX, often called version 2.9.0.

You must choose the Direct3D display driver to be able to choose a specific aspect ratio (Auto, Stretch, NTSC, PAL, 1:1). Several cropping types are also available.

Is it possible to download 2.9.0 version of BlueMSX?

By mars2000you

Enlighted (6259)

mars2000you's picture

11-07-2022, 17:19

Not on the official site, but you can find an unofficial .exe here: https://github.com/ducasp/blueMSX

You need to replace the 2.8.2 exe by this exe. Some features such as video superimpose will probably not work (because not compiled with specific tools).

By max_iwamoto

Hero (597)

max_iwamoto's picture

11-07-2022, 17:29

mars2000you wrote:

Not on the official site, but you can find an unofficial .exe here: https://github.com/ducasp/blueMSX

You need to replace the 2.8.2 exe by this exe. Some features such as video superimpose will probably not work (because not compiled with specific tools).

Thank you.

Page 1/2
| 2