【问题标题】:Implement a VGA 80x25 text console aspect ratio实现 VGA 80x25 文本控制台纵横比
【发布时间】:2013-03-09 08:47:36
【问题描述】:

我想实现一个具有老式 vga+crt 显示器图形配置外观和感觉的文本控制台。为此,我需要有关典型设置的渲染纵横比的信息。

  • 80 x 25 使用 9 x 16 单元格得到 720x400 的比率。我从未见过这种比例的显示器(比 16:9 略宽)。 720x400也是windows 9x启动画面显示时的分辨率。

  • 我已经测量了视频 8088 损坏的比率。它给了我一个 3:2 的比例。

  • 我一直在 4:3 显示器上工作,在硬件文本模式下会产生巨大的拉伸效果

  • Dosbox 使用 8:5 的比例,这对于 320x200 分辨率是有意义的

那么对于渲染基于块字符的 ansi-art(例如 ENDOOM 块)来说,正确的比例是多少?

请注意,我说的是显示器上显示的纵横比。我知道我使用的 CRT:s 具有修改输出图像宽度和高度的选项,但是如果存在,用户将如何设置这些选项。我将 v 控件设置为全屏尺寸,给出拉伸字符,但 win95 初始图像的比例正确。

【问题讨论】:

  • 我添加了一些附加信息。希望我能帮上忙。如果您需要更多,请告诉我;几个小时后我可能无法重温。
  • 如果仍然适用,则 3:2 比例(水平 3 像素等于垂直 2 像素)是正确的。这几乎是正确的(720x405 模式在严格的 4:3 上恰好具有这个像素纵横比),但是坚持这一点很好,对于体面的软件复制来说非常干净,尤其是对于你提到的 CRT 的模拟性质(HV 旋钮)在这个规模上并不重要。所以只要坚持 3:2。

标签: aspect-ratio vga


【解决方案1】:

没有人说像素是正方形的。

事实上,在 VGA 出现并提供 640x480 之前,没有通用的用于 IBM 风格 PC(我不知道 Macintosh 还是 Amiga 是否有)的通用视频适配器/显示器组合呈现方形像素。

请记住,VGA 是一种为 CRT 设计的模拟技术。特别是分辨率和刷新率是由主板上的视频适配器控制的,而不是显示器。监视器电子设备可以从左到右和从上到下(在电子设备可以承受的频率范围内)运行电子束,以产生视频控制器卡想要输出的任何像素分辨率。像素是可寻址元素,而不是显示元素,它们的“矩形”程度取决于显示器(大多数显示器都有调整显示器 V 尺寸的控件,因此比例不固定)。

虽然存在“标准”分辨率(这基本上意味着它们已明确列出并受到 IBM PC BIOS 的支持),但如果您知道您使用的是哪种硬件,您可能会重新编程视频适配器以呈现不寻常的分辨率。一些视频游戏就是这样做的。

我还记得一个实用程序,它对原始 IBM PC(“MDA”)的单色显示适配器进行了重新编程,以在文本模式下呈现 26 行,而不是 25 行。该实用程序使用额外的行来输出“状态栏”,如果您将使用 Caps Lock、Scroll Lock 和 Num Lock 状态(当时的键盘没有状态灯)。有趣的是 MDA 适配器没有足够的 RAM 来容纳一整行额外的文本,所以视频输出电路在缓冲区的末尾翻转,第 26 行的最后三分之一左右重复了第一行屏幕左上角的几个字符。你和那个一起生活。 (该实用程序也适用于 Hercules 视频适配器,它使用相同的控制器芯片,但有更多 RAM 来支持图形模式,因此不会出现重复字符溢出)。

您还没有听说过 720x400,因为没人关心。程序无法在此模式下处理单个像素,因为它们是由字符生成器电路动态生成的,所以这真的无关紧要。 VGA 适配器电路显然可以以这个频率驱动显示器,所以理论上你可以有一个高分辨率的图形模式,但是适配器没有足够的 RAM 来支持它(电子设备中的其他限制也可能是存在;例如,是否可以足够快地扫描视频 RAM?我不知道。)

编辑,有一些说明:

之所以需要 V 尺寸调节旋钮,是因为 CRT 电子设备无法以经济实惠的方式精确制造。需要一些回旋余地和手动调整控制垂直扫描范围的电压,以考虑壁电流的电压变化、电子设备老化(特别是电容器)等。目的是使用旋钮调整结果高度,直到输出是“正确的”(大约 4x3)。当电子设备变得复杂到可以自动进行这些调整时,这些旋钮最终消失了。

要回答您的最后一个问题:您必须承认像素不是正方形的事实。忠实的外观需要您以您选择的分辨率将渲染图像 720x400 矩阵缩放(压缩或拉伸)为 4x3 比例。它不会很锋利,我可以计算像素;它不可能是。这与笔记本电脑制造商在 LCD 面板上呈现文本模式的问题相同。

【讨论】:

  • 所以预期的输出是 4:3
  • 正确:4x3。对不起;我觉得我讲了一个很好的故事,但没有回答你的基本问题。
猜你喜欢
  • 2015-02-17
  • 2013-10-31
  • 2016-08-06
  • 1970-01-01
  • 2020-10-01
  • 2016-10-13
  • 2023-04-07
  • 2015-05-20
  • 1970-01-01
相关资源
最近更新 更多