thebezelproject/BezelProject

NES aspect_ratio_index

obrie opened this issue · 5 comments

obrie commented

Hi there -

I'm curious about the intent of the aspect_ratio_index override for NES:

sed -i '4i aspect_ratio_index = "16"' /opt/retropie/configs/nes/retroarch.cfg

I'm using the bezels on a 1080p TV and, while all other games are scaled appropriately within the bezels, I found that NES games had several pixels from the game on the left and right cut off. After some amount of time searching on forums, I saw a comment to enable video_scale_integer, but the results did not seem correct. Below are examples of different configurations and their impact:

Examples

19:14 aspect

aspect_ratio_index = 16
video_force_aspect = "true"
video_aspect_ratio = "-1.000000"

nes-bubblebobble-aspect_ratio_16

Core provided

aspect_ratio_index = 21
video_force_aspect = "true"
video_aspect_ratio = "-1.000000"

nes-bubblebobble-aspect_ratio_core

4:3 aspect

aspect_ratio_index = 0
video_force_aspect = "true"
video_aspect_ratio = "-1.000000"

nes-bubblebobble-aspect_ratio_0

No overrides

# aspect_ratio_index = 16
# video_force_aspect = "true"
# video_aspect_ratio = "-1.000000"

nes-bubblebobble-aspect_ratio_defaults

video_scale_integer

aspect_ratio_index = 16
video_scale_integer = true

nes-bubblebobble-video_scale_integer

Thoughts

From the screenshots, it seems like aspsect_ratio_index = 21 is perhaps the most accurate in terms of reflecting the original intent of the game, but aspect_ratio_index = 0 seems most aesthetically pleasing in terms of being full-screen.

Configuration

I have no overrides in /opt/retropie/configs/all/retroarch.cfg.

/opt/retropie/configs/nes/retroarch.cfg:

input_overlay = "/opt/retropie/configs/all/retroarch/overlay/Nintendo-Entertainment-System.cfg"
input_overlay_opacity = "1.000000"
aspect_ratio_index = "16"
video_force_aspect = "true"
video_aspect_ratio = "-1.000000"

input_remapping_directory = "/opt/retropie/configs/nes/"
run_ahead_enabled = "true"
run_ahead_frames = "1"
run_ahead_secondary_instance = "true"

#include "/opt/retropie/configs/all/retroarch.cfg"

FCEUmm core options:

fceumm_apu_1 = "enabled"
fceumm_apu_2 = "enabled"
fceumm_apu_3 = "enabled"
fceumm_apu_4 = "enabled"
fceumm_apu_5 = "enabled"
fceumm_aspect = "8:7 PAR"
fceumm_nospritelimit = "enabled"
fceumm_ntsc_filter = "disabled"
fceumm_overclocking = "disabled"
fceumm_overscan_h = "disabled"
fceumm_overscan_v = "enabled"
fceumm_palette = "default"
fceumm_ramstate = "fill $ff"
fceumm_region = "Auto"
fceumm_show_adv_sound_options = "disabled"
fceumm_show_adv_system_options = "enabled"
fceumm_show_crosshair = "enabled"
fceumm_sndquality = "High"
fceumm_sndvolume = "7"
fceumm_swapduty = "disabled"
fceumm_turbo_delay = "3"
fceumm_turbo_enable = "None"
fceumm_up_down_allowed = "disabled"
fceumm_zapper_mode = "lightgun"
fceumm_zapper_tolerance = "6"

System information

  • Raspberry Pi 4 Model B
  • Raspbian Buster
  • RetroPie 4.7.1
  • Retroarch 1.8.8 (svn eb87c5e)
  • lr-fceumm (latest)
  • Sony KDL-40Z5100 (40" 1080p via HDMI)

The NES bezels were created to support 4:3 aspect ratio. Some games have more pixels than others (up to the programmer, at the time) toward the edges, so many will appear cut off. You can also sometimes see a difference between PAL games and NTSC versions.

obrie commented

Thanks for the follow-up. Just so I can understand -- since the bezels were created to support 4:3 aspect ratio, why does the index get set to 16 for a 19:14 aspect ratio?

16 was correct for an older version of Retroarch, and when the bezels were created. The Libreto devs change the index numbers over time as needed. Feel free to update that number assuming you are on a newer version of Retroarch.

obrie commented

Ah hah, I think you're right there. It looks like 16 is 19:12 on Retroarch 1.8.8 whereas 16 was 19:14 when the bezels were created. I'll test that out tonight. Thanks!

obrie commented

After updating the index to 17, this now works as expected. Thanks!