Reproduce the noise of switching resolution

ah. yup.
That is exactly what I noticed.
I noticed that the higher the resolution, the higher the values need to be generated. So far I’ve set it to 25, and it seems that 25 doesn’t cause any extra glitching (although it does increase the noise) if you’re doing 224/240 x4.

Also, it does not seem to work well with Flycast Dreamcast. The signal seems to disappear at once from 480 vertical, and when I set the parameter to 479, the SEGA logo shakes up and down very badly. When I set the parameter to 480, the SEGA logo does not move at all.
I think this is completely dependent on the core, Beetle Saturn doesn’t seem to work as the vertical resolution doesn’t move (for some reason it stretches and shrinks horizontally).

Beetle is a bit strange to me because I’m all about vertical integers when it comes to resolution. I’m thinking 224/448 vertical, so I’m sometimes confused that it’s 240/480 in Beetle but cropped.

25 to the threshold? What “noise” does it increase? It just acts like a switch 1/0: activate the effect or not, but it does not affect the intensity on the effect.

The glitches are modulated by amplitude and bar visibility parameters only.

The screen will not go up and down with the PS logo fading in at 25 with x4 resolution. And the difference between 50 and 25 is that some games have about 1 or 2 more noise in the game logo video after the PS logo, intro video, etc. I’m sure 50 is more stable, but I prefer that noise.

ah,
This is the noise of the one with white bars on a darkened screen.

ps
I tried to record what was going on, but I forgot which games have more white bands during darkening.

Maybe 25 and 50 are the same. But I started with 1, increased the core resolution and increased the parameters in 5 increments until the screen stopped going up and down with the PS logo fade in, at 25 it stopped going up and down, so I feel like I went with 25.

Meanwhile i just checked flycast. Indeed the boot is jerky, but it depends on the core not going full framerate, but much slower, at the very start; nothing the shader can do.

edit

maybe we can check if the frame is 0 and skip the glitch.

Maybe booting with full dc bios is better

1 Like
  • Now the threshold goes from 0 to 1 and is relative to the screen % that has changed.
    The default value has been set to 0.1 (10%)

  • The initial frames (10 seem enough) are not taken into account, so that flycast does not shakes badly anymore at boot.

    https://github.com/libretro/slang-shaders/pull/525
3 Likes

OH.
First of all,
For you, this work should not be your main business. I do not know how far I can go with my request.

But thanks for the improvements.

If I could make a further request, I would be happy to add the left and right pixels to the parameters. This I have not yet come up with a use for yet.
But I’m sure there are possibilities in the core that I haven’t used yet.

1 Like

This is not just moving the screen up and down in response to vertical resolution pixel movement as in the first release, but “moving the screen up and down” in response to horizontal resolution pixels as well. I should add that this does not move it horizontally.

Well, it is enough without implementation.

It was trivial, so just done, the threshold parameter is still just one, but the check is made for horizontal and vertical resolution now.

1 Like

With the shaders in the pushed, the number of times that white noise is present is comparable to that of the real machine. This is great.

Now that I think about it, there was noise when opening and closing menus on PS1 FF7. This is the original consumer CRT movement. just like the aiwa Trinitron. :smiley:


I can't read code, so I have a technical question for you after all.
  • Logo, intro, etc. flows from the bottom with resolution change

  • White bars appear with resolution change during darkening

Is the logic of these two actions exactly the same?

The shader logic is simple:
Resolution changes enough -> the image shakes/bounces -> bright bars fills the void space.

In detail, the “Animation” lasts 5 frames.

Everytime the shader detects a resolution change, say you have set an amplitude of 20% on a screen (core) height of 100px:

  • image goes to potition +20
  • image goes to potition -20
  • image goes to potition +10
  • image goes to potition -10
  • image goes to potition +5
  • 6th frame: normal position.

When the image goes up, it leaves a void space on the lower side of the screen; that space is filled by a bar bright bar.
When the image goes down, it leaves a void space on the upper side of the screen; that space is filled by a bar bright bar.

As you can see in this video, the noise count is identical to the actual device.

Well, this is what I am asking, but I am not sure how to you. …

There is a language barrier that won’t let me understand what are you asking, sorry, are you asking for thinner bars instead of a bigger bar ?

hmm…
Please forgive the language barrier and my rudeness.

I understand. I cannot communicate well because of the language barrier, so I will request an alternative.

The second of the parameters is brightness and the third is shake width. So, could you please add a fourth parameter and add an option so that the white bars do not expand up and down and become dimmer when the shake width is increased? Something like “ratio of up/down expansion”, with 0 for no expansion and 100 for maximum expansion.

I had refrained from requesting a thin bar because I think it would be a problem for others if it is only tailored to my preferences. But what about making it selective so that others can customize it as a parameter, I thought about it.

Also, I wanted to avoid as much as possible your core business of shader creation efforts.

1 Like

Let me rephrase just to be sure i understood properly.

  • You’d like the bars “height” to be configurable.
  • That new “height” is expressed as a ratio of the void space left by the shake

Now I’ve a question for you: :slight_smile:

To what those bars will be adiacent? (Making another parameter for this seems excessive to me) so let’s choose between:

  1. Adjacent to nothing, bars are aligned to the middle of the void space
    they shakes with the content.
  2. Adjacent to the real/physical screen border
    They stay at that fixed position while the content shakes
  3. Adjacent to the core content
    They shakes with the content

I’d say 3 as the probably more accurate reproduction of the real effect?

…and the language barrier is here too, i’ve my problems understanding something obvious to others in communications.

1 Like

yup

Yes, it is. Just like the logo screen shaking, I was looking for something that would shake the screen when it is dark.

1 Like

I thought about it calmly.

This is probably not well understood even by those who can speak native Language. I don’t think this kind of noise would be well conveyed even in a conversation between Japanese people. lol :pray:

1 Like

When there is a workflow and language makes communication difficult, it is advisable to be as direct as possible. This may seem impolite, but if there is established communication, it is understood that there is a lot of respect.

I am testing with 240p Test Suite from Sega Genesis. Scroll Test allows you to switch between 320x224 and 256x224.
When I switch between these two resolutions, resswitch is activated.
If I select 320, and change the scroll to vertical (with the B button), nothing happens.
If I select 256 and change the scroll, the effect is activated.

240p Test Suite vídeo.

The sensation produced by this effect is very pleasant.
@kokoko3k How far can a shader go? Can you include sounds?

If you could play that PCHKOUT! when the resolution changes it would be great.

P.S: I was having a friendly and respectful conversation with a user about CRTSwitch and I got this video with RetroArch, you can appreciate several patterns when it changes.

2 Likes

Ahah, no, no way.

PS: the verticall scroll probably uses same res of the horizontal one.

1 Like

This is the reason for my unclear story.

  • @kokoko3k Koko-aio shader discussions and updates I did not want to impede shader development for this main Project.

  • In addition, most of the videos on YouTube are CRTs for PVM or Professional, and these CRTs often have power-on noise or hardware-specific noise (SS, etc.), so we judged them to be unhelpful. Basically, it is safe to assume that PVM and Professional CRTs hardly generate noise.

  • When I finally found a video of a SONY Flat Trinitron for consumer use, it was mostly “RetroArch”, “Retro compatible”, and “mini consoles”, which I had a hard time finding as reference material and was stuck.

1 Like

With the current shader, there are bars above and below the content like this. It seems to stop working when the video driver is set to DirectX, so the screen always looks like this. So I made some observations.

0.1

0.20

0.50

1

The reason I said no to the thin line, which I discussed at the beginning, was to clarify this gradation. Like this.

I wanted the lines to remain blocky and clear, not gradient-like, even when enlarged.

Or, Change the direction of the gradient so that it becomes brighter and brighter toward the top… (This just came to me.)

but, I think the movement would probably look unnatural as it is now… Pretend you didn’t hear about this pattern over here.



I thought carefully and carefully wrote what I wanted to talk about in the beginning (with the help of Deepl translation since my English is not good).

What do you think?

2 Likes