megamarc / Tilengine

Free 2D graphics engine with raster effects for retro/classic style game development
https://www.tilengine.org
Mozilla Public License 2.0
847 stars 95 forks source link

4:3 Aspect Ratio Option #69

Closed GithubPrankster closed 4 years ago

GithubPrankster commented 4 years ago

Hello! I have looked into using Tilengine again as I've improved more on my willingness to keep on learning about gamedev, and I began to notice something peculiar about old televisions: The SNES has a framebuffer of 256x224, considered an aspect ratio of 8:7, but the result as drawn by the electron gun of a CRT would often result in a 4:3 picture! This is debated better in a video by Displaced Gamers.

It would be interesting to have this as an option in Tilengine as to be further accurate with how things actually worked on the old systems, lemme know.

megamarc commented 4 years ago

Hi! This was because pixel aspect ratio was different than screen aspect ratio. Nowadays all displays are manufactured witth 1:1 pixel aspect ratio, that's a good thing for everyone. Tilengine window uses 1:1 pixel aspect ratio too.

This was a headache for game developers back in the day, who had to create their graphics distorted with the inverse aspect ratio of the target system, and had to be all redrawn when porting to a platform with a diferent aspect ratio, despite all running on 4:3 monitors. Are you sure that emulating this "feature" would add value to your project?

I can think one situation where it would be useful: creating a game with graphic assets ripped from a classic platform with non 1:1 pixel aspect ratio (SNES, CPS1/2...). Are you planning this maybe?

GithubPrankster commented 4 years ago

I was interested in making an asset viewer tool for checking the look of assets in Tilengine's CRT filter so I found it'd be interesting to also check other old assets too, but with the "correct" aspect. I agree, it's for the best we have an uniform output. This has however sparked my interest in Tilengine's external rendering, so I may show on the forum what I could do following the idea and contribute more to documentation.