We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

Widescreen: Difference between revisions

From SnesLab
Jump to: navigation, search
(Add 2:1 and details table)
Line 1: Line 1:
== Screen ==
== Screen ==
We have two standard widescreen settings available:
We have two standard widescreen settings available:


1) 16:9 widescreen. There's an additional 48 columns to the left and right side of the screen. Resolution is 352x224, stretched to simulate the 8:7 pixel aspect ratio.
1) 16:9 widescreen. There's an additional 48 columns to the left and right side of the screen. Resolution is 352x224, stretched to simulate the 8:7 pixel aspect ratio.
Line 8: Line 7:


3) 2:1 widescreen. There's an additional 64 columns to the left and right side of the screen. Resolution is 384x224, stretched to simulate the 8:7 pixel aspect ratio.
3) 2:1 widescreen. There's an additional 64 columns to the left and right side of the screen. Resolution is 384x224, stretched to simulate the 8:7 pixel aspect ratio.
=== Reference table ===


{| class="wikitable"
{| class="wikitable"
Line 13: Line 14:
! Target aspect ratio !! Numerical aspect ratio !! SNES internal resolution !! Numerical pixel aspect ratio !! Notes
! Target aspect ratio !! Numerical aspect ratio !! SNES internal resolution !! Numerical pixel aspect ratio !! Notes
|-
|-
| 4:3 || 1.3333 || 256x224 || 1.1667 || Real hardware reference. Sometimes, TV screens pixel aspect ratio are 1.1428 instead of 1.1667.
| 8:7 || 1.1428 || 256x224 || 1.0000 || Most of the emulators doesn't apply pixel aspect ratio (leaves as 1:1). Keep this value as reference.
|-
| 4:3 || 1.3333 || 256x224 || 1.1667 || Real hardware reference. Certain TVs pixel aspect ratio are 1.1428 instead of 1.1667, due of signal interpretation differences.
|-
|-
| 16:9 || 1.7778 || 352x224 || 1.1313 || N/A
| 16:9 || 1.7778 || 352x224 || 1.1313 || N/A
Line 24: Line 27:
=== Comparison with 4:3 standard ===
=== Comparison with 4:3 standard ===


The 256x224 SNES screen is not 4:3, but rather 8:7. CRT screens usually stretches the image by multiplying the internal screen width by 8/7 or 7/6, depending on the TV model. 8/7 seems to be more common, while 7/6 gives an perfect 4:3 output, since 8:7 (screen aspect ratio) * 7/6 (pixel aspect ratio) = 4/3 (actual aspect ratio), while 8:7 (screen aspect ratio) * 8/7 (pixel aspect ratio) = 64:49 (more like 4.0000:3.0625).
The 256x224 SNES screen is not 4:3, but rather 8:7. CRT screens usually stretches the image by multiplying the internal screen width by 8/7 or 7/6, depending on the TV model. 8/7 seems to be more common, while 7/6 gives an perfect 4:3 output, since 8:7 (screen aspect ratio) * 7/6 (pixel aspect ratio) = 4/3 (actual aspect ratio), while 8:7 (screen aspect ratio) * 8/7 (pixel aspect ratio) = 64:49 (more like 4.0000:3.0625). Use the above reference table for clarification.
 
=== Important note ===
All values consider the NTSC signal as reference. PAL equivalence calculations are not yet available.


== Objects ==
== Objects ==

Revision as of 09:28, 11 April 2021

Screen

We have two standard widescreen settings available:

1) 16:9 widescreen. There's an additional 48 columns to the left and right side of the screen. Resolution is 352x224, stretched to simulate the 8:7 pixel aspect ratio.

2) 21:9 widescreen (actually 64:27). There's an additional 96 columns to the left and right side of the screen. Resolution is 448x224, stretched to simulate the 8:7 pixel aspect ratio.

3) 2:1 widescreen. There's an additional 64 columns to the left and right side of the screen. Resolution is 384x224, stretched to simulate the 8:7 pixel aspect ratio.

Reference table

Target aspect ratio Numerical aspect ratio SNES internal resolution Numerical pixel aspect ratio Notes
8:7 1.1428 256x224 1.0000 Most of the emulators doesn't apply pixel aspect ratio (leaves as 1:1). Keep this value as reference.
4:3 1.3333 256x224 1.1667 Real hardware reference. Certain TVs pixel aspect ratio are 1.1428 instead of 1.1667, due of signal interpretation differences.
16:9 1.7778 352x224 1.1313 N/A
21:9 2.3703 448x224 1.1851 N/A
2:1 2.0000 384x224 1.1667 N/A

Comparison with 4:3 standard

The 256x224 SNES screen is not 4:3, but rather 8:7. CRT screens usually stretches the image by multiplying the internal screen width by 8/7 or 7/6, depending on the TV model. 8/7 seems to be more common, while 7/6 gives an perfect 4:3 output, since 8:7 (screen aspect ratio) * 7/6 (pixel aspect ratio) = 4/3 (actual aspect ratio), while 8:7 (screen aspect ratio) * 8/7 (pixel aspect ratio) = 64:49 (more like 4.0000:3.0625). Use the above reference table for clarification.

Important note

All values consider the NTSC signal as reference. PAL equivalence calculations are not yet available.

Objects

Since OAM sprite width is 9-bit wide, allowing values between -256 to +255, the internal range is adjusted in a manner the negative range also wraps positively. You can assume the values to range between -128 and +384, which are mapped that way: if unsigned position is greater than or equal to 384, subtract 512 from it. Else, keep value as is.

Sprites that already knows how to handle the left screen boundary (position -1 to -16) can be easily adapted to work with the widescreen range. Otherwise, it's recommended to port the relative screen position to use 16-bit values.

In addition, it doesn't break other emulators, since the additional visible area is implicitly invisible on the SNES hardware specification.

Windowing

Assume that the windowing internal size is 512 lines long instead of 256 lines long. If you take the windowing calculations based from this perspective, windowing HDMA will work regardless of the aspect ratio being currently used (16:9, 21:9, etc.)

Emulator

https://github.com/DerKoun/bsnes-hd

https://www.reddit.com/r/emulation/comments/bmc9t9/bsneshd_beta_5_bsnes_1073_formally_hd_mode_7_mod/