Aspect ratio is incorrect, particularly with overscan cropped
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 77
- Forks
- 38
- Avg merge
- 36m
- Merged PRs (30d)
- 6
Description
Genesis Plus GX, NTSC Game, correct ~4:3 ratio:

Genesis Plus GX, PAL Game, correct ~8:5 ratio (PAL had 288 lines per field compared to NTSC's 240, but most PAL MD games still only use 224 after overscan, leaving large black borders on the top and bottom of the screen):

Blast'Em, NTSC Game, wrong ratio:

Blast'Em, PAL Game, wrong ratio:

This pull request introduced the bug:
https://github.com/libretro/blastem/pull/25
It computes the aspect ratio using the number of (overscan-cropped) horizontal and vertical pixels, but the aspect ratio should be that of how a TV of the time was expected to display it. It should always be reporting ~4:3 for NTSC and ~8:5 for PAL (except for games that use the true 240P PAL mode of the VDP, if any exist). Genesis Plus GX does this by actually considering the pixel clock frequency compared to the canonical scan rate of the video signal, but returning a stock aspect ratio based on video mode is probably close enough. A real TV of the time could be calibrated to exactly fit the signal to its display area anyway.
See here for discussion.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing pull request #25 and the aspect-ratio calculation it introduced, then compare its behavior for the NTSC and PAL examples in this issue. Done means the reported display ratio remains approximately 4:3 for NTSC and 8:5 for PAL, including when overscan is cropped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100