Итак, поделюсь своими исследованиями по поводу того, как
Mednafen выводит картинку в случае с
Sega Saturn.
- Эмулятор привязан к 240 линиям по вертикали. Картинка по вертикали выводится без искажений. Но если вертикальное разрешении игры имеет 224 линии, то появляются горизонтальные полосы! Про 256 линий говорить не приходится, так как эмулятор не поддерживает PAL версии игр.
- Картинка по горизонтали выводится весьма странно (почему-то сжимается до 302 пикселя по умолчанию). Тут уже идёт привязка к горизонтальному разрешению в 352 пикселя. Если в игре только 320 пикселей по горизонтали, то появляются вертикальные полосы.
Чтобы картинка выводилась без искажений и нарушений
пиксельных пропорций (1:1), нужно применить два коэффициента для ключей
ss.xscale и
ss.xscalefs (оконный и полноэкранный режим соответственно):
- 1,096 - для игр с горизонтальным разрешением 320 пикселей
- 1,166 - для игр с горизонтальным разрешением 352 пикселя
Ключи, отвечающие за вертикальное разрешение (
ss.yscale и
ss.yscalefs) остаются равными
1.00.
А чтобы пропорционально увеличивать размер картинки, достаточно умножить все коэффициенты на целое число (2, 3, 4 и т.д.).
Для полноэкранного режима важно изменить ключ
ss.stretch на положение
0, чтобы соблюдались пропорции картинки!