drhelius / Gearsystem

Sega Master System / Game Gear / SG-1000 emulator for macOS, Windows, Linux, BSD and RetroArch.
https://x.com/drhelius
GNU General Public License v3.0
247 stars 45 forks source link

Feature request: option to display top and bottom borders in SMS games #64

Closed mark21gt closed 5 months ago

mark21gt commented 2 years ago

I personally really like the aspect ratio of the SMS games with the top and bottom borders and I think that the games look slightly stretched out without them.

Gearsystem don't display these two borders by default (it only displays the left one when used) and I'd really like if there was an option to turn them on.

Here's "Alex Kidd in Miracle World" running on Gearsystem by default (without borders):

gearsystem

Here's a screenshot of this game with both top and bottom borders being displayed (this is also how the game looks on an original SMS):

kegafusion

drhelius commented 2 years ago

Thanks for your petition. If I'm not mistaken this is something that affects PAL systems only, isn't it? It could be a nice feature to have.

mark21gt commented 2 years ago

If I'm not mistaken this is something that affects PAL systems only, isn't it?

Actually, in a PAL SMS the borders seems to be even larger (since you have the native borders + the unused space in the higher PAL resolution). Not sure how it works though... But yes, the borders are definitely present in NTSC systems and displays too (the borders in the Alex Kidd screenshot are in their native NTSC size, the "correct" size to emulate them).

I'm not sure if the emulator crops them out from the rendering window or if it just doesn't emulate them at all, but I did notice there's a "border color" reference in the source code. I've tried changing some values and lines for the screen rendering and drawing routines but without success.

drhelius commented 2 years ago

The emulator does not render the horizontal borders right now, but could be easily added. I'll have to understand the behavior on NTSC and PAL systems before though.

The border color in the code is for the vertical border that is used to mask sprites on the left.

mark21gt commented 2 years ago

The emulator does not render the horizontal borders right now, but could be easily added. I'll have to understand the behavior on NTSC and PAL systems before though.

The border color in the code is for the vertical border that is used to mask sprites on the left.

Thanks for accepting my suggestion! Also, I think that the borders always share the same color.