blank007 发表于 2023-6-18 17:08:19

重度强迫症的一个小小发现: G4D 中 ,菜单中的 ASCII 码字符显示有些细微的变化

本帖最后由 blank007 于 2023-6-18 19:13 编辑

重度强迫症的一个小小发现: G4D 中 ,菜单中的 ASCII 码字符显示有些细微的变化

G4D 2022-11-28 可以使用中文字库中的字体显示 ASCII 码字符,从之后的某个版本开始,似乎是强制使用 BIOS 中的字体来显示 ASCII 码字符。有什么办法能让它使用中文字库中的字体来显示 ASCII 码吗?

有请各位大神开示!

caocaofff 发表于 2023-6-18 22:23:19

是不是要问问丫丫{:1_186:}

2011yaya2007777 发表于 2023-6-19 05:11:49

因为好多人自己制作的字库不包含ASCII 码字符。

不点 发表于 2023-6-19 12:34:43

yaya 说清楚了。我再来补充一下(其实是解释一下而已,因为担心有人不太明白,所以解释一下)。

BIOS 中存在英文字体,却没有中文字体。这是为什么呢?大家都懂。计算机是谁发明的?(西方发明的)。中文要占用多大空间?(很大空间,不能放进当时非常狭小的 ROM 里面。)

grub4dos 的外置字库,可以包含各国(各地区)语言,也可以包含 ASCII 字符。

如果外置字库里面包含了 ASCII 的点阵,就会启用它。如果外置字库里面没有 ASCII 字符的点阵,那就使用 ROM 里面的点阵。

楼主所说的问题,如果真的存在,那么,我理解为,新版可能存在 bug 了。

blank007 发表于 2023-6-19 13:22:11

不点 发表于 2023-6-19 12:34
yaya 说清楚了。我再来补充一下(其实是解释一下而已,因为担心有人不太明白,所以解释一下)。

BIOS 中 ...

用这个字库就可以看出来了

G4D 2022-11-28 中使用这个字库,ASCII字符显示明显单薄。G4D 2023-06-15 中使用,会发现 ASCII 字符明显饱满,显然就是 BIOS中的字体和字形。

2011whp 发表于 2023-6-19 13:59:54

是不是错觉


2011whp 发表于 2023-6-19 14:18:50

解压gb2312.gz,编辑 hex字体

上面 是 g4d2023-6-15 在虚拟机中,有可能实体机中 不一样。

不点 发表于 2023-6-19 15:06:07

本帖最后由 不点 于 2023-6-19 15:30 编辑

blank007 发表于 2023-6-19 13:22
用这个字库就可以看出来了

G4D 2022-11-28 中使用这个字库,ASCII字符显示明显单薄。G4D 2023-06-15 ...
我看了你的字库中的 0~7F (即通常所说的 ASCII)的点阵格式,是正常的。


0~7F 称为 ASCII。ASCII 的地位很特殊。在 grub4dos 的字库处理中,ASCII 字符都按照 8*16 的点阵(窄字符)来处理,不允许 ASCII 字符采用 16*16 的宽字符格式。这是因为,一旦 ASCII 采用宽字符来显示,整个显示就乱套了。字库中的 ASCII 字符的点阵,如果是宽字符格式(16*16),这一行将被忽略,而会用 ROM 里面的 8*16 点阵(这是 ASCII 字符的默认点阵)来取代。除了 ASCII 之外,其他字符都可以采用 16*16 的宽字符格式,当然也可以采用 8*16 的窄字符格式。也就是说,只有 ASCII 字符被限定为 8*16 点阵,而其余字符都是既可采用 8*16 点阵, 也可采用 16*16 点阵,不作任何限制。


既然你看到了 2022-11-28 与 2023-06-15 的显示不同,那就说明是有问题了。

要么是 2022-11-28 有 bug,要么是 2023-06-15 有 bug。

你可以胡乱修改一个字符,看看是谁的 bug。

比如说,你修改 空格 的点阵,看看你修改后的空格是否有更新。

空格是这行:

0020:00000000000000000000000000000000

你把它修改成这样(其实就是胡乱修改一下罢了,点阵数据都是十六进制):

0020:77777777777777777777777777777777

注意这一行的长度可不能变啊,原来是多少个字符,修改后也应该是多少个字符。

修改后,用旧版 grub4dos 和新版 grub4dos 分别测试,看看你新修改的这个空格字符的点阵是否被采用。

这样,很快就可以确定究竟是哪个版本有 bug 了。

dfw9 发表于 2023-6-19 16:14:33

本帖最后由 dfw9 于 2023-6-19 16:16 编辑

变化是有点,避开或重新设计字体应用即可。就如同xp及win7之间的变化,适应即可,无大碍。我开始去适应新版了。

chesson 发表于 2023-6-19 22:46:39

小白一枚,借宝地求教个问题:几年前我学习细细哥的U盘启动VHD的帖子,随便找个成品PE,再借助FbinstTool就可以看到存在的UD分区,随便编辑菜单文件,现在新版的PE,为什么隐藏分区全都无法查看了?是需要什么新的软件工具才行吗?

blank007 发表于 2023-6-20 18:01:33

本帖最后由 blank007 于 2023-6-20 18:06 编辑

不点 发表于 2023-6-19 15:06
我看了你的字库中的 0~7F (即通常所说的 ASCII)的点阵格式,是正常的。



按照大侠的设计做了测试,发现:自 G4D 2023-03-01 版本开始,ASCII 字符的显示就开始使用 BIOS 内置字体了

图 001:空格被改后,G4D 2022-11-28 、2023-02-28 版的显示:字库读取显然正常

图 003:空格被改后,G4D 2023-03-01 、2023-06-15 版的显示:ASCII 字符显然是 BIOS 字库

图 002:G4D 2023-03-01 版更新信息

不点 发表于 2023-6-20 21:21:33

blank007 发表于 2023-6-20 18:01
按照大侠的设计做了测试,发现:自 G4D 2023-03-01 版本开始,ASCII 字符的显示就开始使用 BIOS 内置字体 ...

报告得很详细,能用虚拟机重现 bug,
说明与硬件无关,是在任何电脑都
必定出现的 bug。

还报告了出现 bug 的日期,我想,
这对开发者排错来说是很有帮助的。

2011yaya2007777 发表于 2023-6-22 07:24:03

本帖最后由 2011yaya2007777 于 2023-6-22 10:04 编辑

再说详细一点,有人反馈执行 SISO 后有中文字符而没有 ASCII 字符,因此 2023-03-01 做了修改。
现在优先使用用户加载的16*16字库。

blank007 发表于 2023-6-22 10:18:01

2011yaya2007777 发表于 2023-6-22 07:24
再说详细一点,有人反馈执行 SISO 后有中文字符而没有 ASCII 字符,因此 2023-03-01 做了修改。
现在优先 ...

多谢大侠

试了一下,确实是加载用户字库了
页: [1]
查看完整版本: 重度强迫症的一个小小发现: G4D 中 ,菜单中的 ASCII 码字符显示有些细微的变化