bsnes-emu / bsnes

bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
Other
1.69k stars 158 forks source link

Add extra cropping options #169

Open Awakened0 opened 3 years ago

Awakened0 commented 3 years ago

I found this nice for Yoshi's Island in Mesen-S. In bsnes you can only do none or an 8px vertical crop in stand alone or libretro.

Mesen-S does also offer horizontal 8px and 16px cropping, but I haven't found a game that's useful for yet.

Screwtapello commented 3 years ago

Every frame, the SNES draws ~240 horizontal lines of video. However, the outer edges of the screen were often hidden underneath the bezel of contemporary TVs, so by default the SNES keeps the top and bottom 8 lines black. This gives games more time to create/update graphics, reducing the chance of slowdown. Games can enable "overscan" mode and draw graphics to those top and bottom 8 lines, but most don't, so bsnes provides the "Show Overscan Area" option to crop off those 8 lines and display the video output just a little larger.

There's no hardware reason for a 16px crop on the SNES. I imagine Mesen-S might have the feature because it was based on Mesen, and NES games often displayed garbage at the edges of the screen, but SNES games didn't really do that.

Why do you feel a 16px crop is beneficial for Yoshi's Island?

Awakened0 commented 3 years ago

Yoshi's Island has twice the amount of black lines on the top and bottom during gameplay compared to other games. So I like those cropped off to "zoom" into the image more.

8px Vertical Crop: 8px

16px Vertical Crop: 16px

DerKoun commented 3 years ago

Another useful vertical crop value is 12. It results in 216 lines, exactly a 5th of 1080. (Also it's exactly 5%, which is a common overscan value you read about quite often.)

Awakened0 commented 3 years ago

One more scenario is Chrono Trigger, which has that infamous bar along the bottom of the screen during most gameplay. It looks like it's 21 lines, so you could do 8 off the top and 21 off the bottom to only display the active scanlines. It would cut off the bottom a bit on the world map and menu screens, but I don't think it'd hide anything crucial.

I'm not sure how granular you'd want to make the cropping settings though, so that could be too much of an edge case. I do appreciate how Mednafen's PSX and PCE emulators allow you to specify how many scanlines to crop off the top and bottom. But those consoles have more games with varying degrees of inactive scanlines compared to SNES.