Jump to content

Pixel Perfect - 1080p vs. 480p


PhilExile

Recommended Posts

Arcade machines are a whole other animal. For the most part, their native resolution is how they were displayed in the arcade. However, there are always exceptions. This is why I'm always pushing for perfect pixel, T. :P Without that functionality, the scanlines don't line up right and everything looks blurry.

Entirely untrue. CRT displays, whether it's a home TV or an arcade monitor, can only display the native vertical resolution. It doesn't matter if a game's horizontal resolution is 320 or 256 or 512 or whatever; on a CRT screen the width will always, always be stretched or compressed to the same size. So to achieve an output that matches the original hardware (regardless of the system) you need a pixel-perfect vertical size and a fixed horizontal size. This is why I don't agree with the whole pixel-perfect philosophy, because varying the horizontal sizes is just plain inaccurate; no games were ever displayed on a CRT monitor in that way.

 

Check any game you like on Wii VC and you'll see they all conform to this.

Link to comment
Share on other sites

  • Replies 49
  • Created
  • Last Reply

Top Posters In This Topic

Entirely untrue. CRT displays, whether it's a home TV or an arcade monitor, can only display the native vertical resolution. It doesn't matter if a game's horizontal resolution is 320 or 256 or 512 or whatever; on a CRT screen the width will always, always be stretched or compressed to the same size. So to achieve an output that matches the original hardware (regardless of the system) you need a pixel-perfect vertical size and a fixed horizontal size. This is why I don't agree with the whole pixel-perfect philosophy, because varying the horizontal sizes is just plain inaccurate; no games were ever displayed on a CRT monitor in that way.

 

I'm not so sure about that. However, I'm willing to do some field work. There is a bar/arcade near me that has a good variety of games to chose from. I'll snap a few picts and then compare them to the Xbox output on my PVM. :P

 

Check any game you like on Wii VC and you'll see they all conform to this.

 

OK, I'll check it out and let you know.

Link to comment
Share on other sites

The thing is, when talking about CRT TVs, it's completely redundant to refer to horizontal resolution. These displays don't have a horizontal resolution since the display is not made up of pixels, it's made up of horizontal lines. Each line is approximately one pixel tall so the number of lines used vertically does conform to the native vertical resolution of the hardware (except every other line is blank hence the scanlines). However the native horizontal resolution of the hardware is irrelevant since, however many pixels there are, they will always be stretched to the full length of the line. So in order to replicate this with an emulator we need to set the vertical size to a multiple of the native vertical resolution of the system (hence giving the correct number of 'lines') and then we just need to decide how long our lines are going to be, since this is determined by the display and is different for every TV; there is no 'perfect' value.

 

And in case you're wondering about rotated arcade games. The above still applies since it's just a regular monitor turned on its side, so the vertical lines now appear to the player to run horizontally across the screen. The 'height' of the lines is still determined by the display and will still always be the same size.

Edited by + T +
Link to comment
Share on other sites

To illustrate here are some images I put to together to break down roughly how CRT TVs display an image. Firstly this is the image as output by the console in its original native resolution (in this case 256x224):

 

218707supermarioworldsn.png

 

 

Now when you output this to a CRT display, it gets broken up into lines. The number of lines is the same as the original vertical resolution, except that there is a blank line every other line, hence we have what we refer to as scanlines. Note that the black bars at the top and bottom are because a CRT TV has 480 lines but this output is only utilising 448 of them (224 video and 224 blank):

 

218707supermarioworldsn.png

 

 

When it comes to the width, the original horizontal resolution is stretched to the length of the line. The internal horizontal resolution is entirely lost and irrelevant to the actual width of the final output, as shown in this half-and-half:

 

218707supermarioworldsn.png

 

 

When all that's done, what you end up with is this; and this is exactly how the image would appear on a CRT TV:

 

218707supermarioworldsn.png

 

 

The black borders would invisible on most displays due to overscan.

Edited by + T +
Link to comment
Share on other sites

The thing is, when talking about CRT TVs, it's completely redundant to refer to horizontal resolution. These displays don't have a horizontal resolution since the display is not made up of pixels, it's made up of horizontal lines. Each line is approximately one pixel tall so the number of lines used vertically does conform to the native vertical resolution of the hardware (except every other line is blank hence the scanlines). However the native horizontal resolution of the hardware is irrelevant since, however many pixels there are, they will always be stretched to the full length of the line. So in order to replicate this with an emulator we need to set the vertical size to a multiple of the native vertical resolution of the system (hence giving the correct number of 'lines') and then we just need to decide how long our lines are going to be, since this is determined by the display and is different for every TV; there is no 'perfect' value.

 

I know from working with these games on a PVM, that unless you set the horizontal size 'perfectly' there will be a distortion. For instance, when I tried to set a game like SALAMANDER to stretch to fill the screen through the emulator and go beyond 512 pixels - you will see these 'waves' that your ship will fly through. Its almost like a wrinkle in the screen. I'm not denying that in the arcade this game is stretched edge-to-edge most of the time. However, I think this is similar to the NES/SNES were there was something in the hardware that acted like an upscaler in some ways. It wasn't something that was specific to the CRT technology - as far as I know. :)

 

The best thing (and I don't know if this is possible) would be to build a second pass scale into an emulator. For instance:

 

1. You set your perfect pixel screen size or just set it to double the pixel size of the arcade rom - 256x224 becomes 512x448

2. Set your TV's resolution to 4:3 in the preferences

3. When you launch the game, the emulator scales the image to 640x448 to fit your screen*

 

*I believe this is what BSNES does.

 

And in case you're wondering about rotated arcade games. The above still applies since it's just a regular monitor turned on its side, so the vertical lines now appear to the player to run horizontally across the screen. The 'height' of the lines is still determined by the display and will still always be the same size.

 

Yes, I know. I play a lot of MS. PAC-MAN, T. :) I actually have a PVM set on its side for vertical games only.

 

The SUPER MARIO WORLD is a great example. Again, I'm not arguing with what you are saying. Its just the way these emulators are built, if you don't find the 'perfect pixel' width - there is distortion introduced. There must be a way to stretch the image horizontally, after its been set, to fill the screen.

 

Talk soon

 

PS - I still plan on doing 'research' at the bar/arcade. Don't try to stop me, T! :P

Edited by PhilExile
Link to comment
Share on other sites

I know from working with these games on a PVM, that unless you set the horizontal size 'perfectly' there will be a distortion. For instance, when I tried to set a game like SALAMANDER to stretch to fill the screen through the emulator and go beyond 512 pixels - you will see these 'waves' that your ship will fly through. Its almost like a wrinkle in the screen. I'm not denying that in the arcade this game is stretched edge-to-edge most of the time. However, I think this is similar to the NES/SNES were there was something in the hardware that acted like an upscaler in some ways. It wasn't something that was specific to the CRT technology - as far as I know. :P

You're right. The image is horizontally stretched somewhat in the hardware prior to reaching the screen. You'll see this if you plug an original system's video output into a capture card. But to emulate this would be almost impossible without altering the Xbox's video output. Also, no CRT display would display a game at the equivalent of 640 pixels wide, that's simply too big. If you want a close approximation of a system's outputted width in pixels then it will be somewhere between 570 and 600 for most displays. Wii VC seems to use around 576 which is a good horizontal value.

 

With an Xbox emulator you will never escape the fact that the image needs to be upscaled. So the best and most practical method of achieving a display as close to accurate as possible is to use hardware filtering to eliminate those distortions and scale the screen to the appropriate vertical size and a fixed horizontal size. 256x224 becomes 576x448, 320x240 becomes 576x480, etc.

 

Trying to set pixel-perfect horizontal sizes is just a waste of time since it won't get you anything like an accurate display. So this is the approach I'm taking with FBL to get the scanlines working properly across as many games as possible. For most games FBL will be sized to be double the native vertical resolution and all games will use the same horizontal size (probably around 576), thus creating as arcade-accurate an image as it's possible to achieve with this hardware.

Link to comment
Share on other sites

Never say never, T. :P

 

I was just thinking about 10x11 pixel mode. Basically, that mode compresses the screen by (I think) outputing pixels that are taller than they are wider. Would it be possible to reverse this, in effect creating a 11x10 pixel mode? With this new mode the pixels would be wider than they were tall, thus helping with the black bar issue.

 

What do you think?

Link to comment
Share on other sites

Never say never, T. :P

 

I was just thinking about 10x11 pixel mode. Basically, that mode compresses the screen by (I think) outputing pixels that are taller than they are wider. Would it be possible to reverse this, in effect creating a 11x10 pixel mode? With this new mode the pixels would be wider than they were tall, thus helping with the black bar issue.

 

What do you think?

 

 

Hey Phil!

 

I already had this idea in the past!

I asked MadMab about this and the answer is no!

Pixel Aspect Ratio 10x11 is a hardware/video thing.

It is not a function or a bit of coding added for the programmer guys...

There is no way to invert it!

=)

 

C.

Link to comment
Share on other sites

Trying to set pixel-perfect horizontal sizes is just a waste of time since it won't get you anything like an accurate display. So this is the approach I'm taking with FBL to get the scanlines working properly across as many games as possible. For most games FBL will be sized to be double the native vertical resolution and all games will use the same horizontal size (probably around 576), thus creating as arcade-accurate an image as it's possible to achieve with this hardware.

 

Hey guys!

 

Well, if I take - right now, under 480p/720p in a LCD TV:

 

- Any NeoGeo game, like for example Metal Slug

- Apply the scanlines

- Apply point filtering (no bilinear, no blur, sharp as hell)

- Double the original height (pixel perfect)

- And apply *any given horizontal width* the game - even with the scanlines will not present a perfect scrolling horizontal. There will be waves totally noticeable on the screen. When you are out of the correct width is super easy to see the problem.

 

However, if I change the hardware filtering to bilinear or trilinear, the waves are gone. The problem is masked, diguised, but the screen becomes so blurry that I feel I am needing glasses to play. The pixels are completely smoked!

 

Mybe under the real 240p the width could not matter at all, but under a progressive 480p/720p in a emulator I think it should not be left behind. Also, there are some games that really had narrow old crt sceens. Stretching them to fill the modern display will present a "bad aesthetic" result... fat charecters!

=)

 

Well, my cents!

 

Regards,

Cospefogo.

Link to comment
Share on other sites

Yes, Cospefogo has hit the nail on the head. That's what I was referring to when I said to emulate the internal stretching would be impossible without altering the Xbox's video output. The 10x11 mode is a built-in function of the Xbox graphics adapter just like the flicker filter and display softening. An emulator can tap into these functions and make use of them, but it can't alter them unfortunately.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...