帆船 发表于 2016-3-6 20:22:36

关于grub4dos-0.4.6a-2016-02-15及之后的版本

弱弱地问一下,在grub4dos-0.4.6a-2016-02-15以及之后的版本中,有这种情况,有大范围的黑色带雪花区域

而早期版本是不会的,

是什么原因?
PS:修改的C大的MAXPE……
grldr:
#
#
#
#
#
debug off
echo Loading WANQDP...
set lst=4UD
set ufd=(0xfb)/AXPE/
checkrange 2:3 is64bit && set NTSIX=y ! set NTSIX=no
checkrange 0x21 read 0x8280 && set AXPE=pxe ! set AXPE=nopxe
if %AXPE%==pxe && set NTSIX=no && pxe detect
map (ud)/Sky_PE.ISO (0xfb) || map --mem (ud)/Sky_PE.ISO (0xfb)
map --hook
splashimage %ufd%VBE/BG.LZMA
font --font-high=24 %ufd%VBE/MENU.HEX
setmenu --font-spacing=0:4 --box x=24 y=5 w=0 h=13 l=0 --ver-off --help=5=0=21
echo
echo
echo ----------------------------------------------------------------------------
echo
echo If you see this line of text in its entirety, which means that your computer
echo
echo is very slow when booting from USB devices, in this case, it is recommended
echo
echo that you first run the USB accelerate, and then run other menu items.
echo
echo ----------------------------------------------------------------------------
set Thmem=05A000
set Thmem2=11F000
configfile %ufd%VBE/MENU.LSTMENU.LST:
color 0xFFFF00 0x0020ff 0x0020ff
timeout 30
checkrange 0x21 read 0x8280 && set deft=2 ! set deft=1
if /i "%lst%"=="4UD" && set /a deft=%deft%-1
default %deft%

#0
iftitle [ if /i "%AXPE%"=="nopxe" && if exist %ufd%WINPE.IM_ && if /i not "%lst%"=="4UD" && if /i not "%lst%"=="4UJ" ] 运行 Native 03 PE \n Native方式的PE,SRS外置,启动速度较快。
%ufd%SRS/F6IMG %ufd%SRS
chainloader %ufd%SETUPLDR.NTV

iftitle [ if /i "%AXPE%"=="nopxe" && if exist %ufd%WINPE.IM_ && if /i "%lst%"=="4UD" ] 运行 Native 03 PE \n Native SKYPE   \n 启动后不能拔除U盘运行!
set PE=NATIVEPE
set MUIM=NO
configfile %ufd%VBE/digselect.LST4UD

iftitle [ if /i "%AXPE%"=="nopxe" && if exist %ufd%WINPE.IM_ && if /i "%lst%"=="4UJ" ] 运行 Native 03 PE \n Native SKYPE   \n 启动后不能拔除U盘运行!
set PE=NATIVEPE
set MUIM=NO
configfile %ufd%VBE/digselect.LST4UD

#1
iftitle [ if /i "%lst%"=="4UD" || if /i "%lst%"=="4UJ" ] 运行 常规 03 PE \n 内置SRS驱动的SKY 03PE。
set PE=常规03PE
set MUIM=NO
if /i "%lst%"=="4UD" && checkrange 0x%Thmem%:-1 read 0x8298 && set MUIM=YES
configfile %ufd%VBE/digselect.LST4UD
boot

iftitle [ if /i not "%lst%"=="4UD" && if /i not "%lst%"=="4UJ" ] 运行 Windows 2003 PE \n 内置SRS驱动的SKY 03PE。
checkrange 0x21 read 0x8280 && configfile %ufd%VBE/PXENET.LST ! chainloader %ufd%SETUPLDR.BIN
boot

#2
iftitle [ if /i "%AXPE%"=="nopxe" && if /i "%lst%"=="4UD" ] 运行 Windows 8 PE \n 原生USB3.0 HUB支持。
map (ud)/SKY_NT6X.ISO (0xfc)
map --rehook
rootnoverify (0xfc)
ls (0xfc)/ > nul
chainloader (0xfc)/AXPE/NT6X/PELOAD

iftitle [ if /i "%AXPE%"=="nopxe" && if /i not "%lst%"=="4UD" ] 运行 Windows 8 PE \n 原生USB3.0 HUB支持。
chainloader %ufd%NT6X/PELOAD || find --set-root /AXPE/NT6X/PELOAD && chainloader ()/AXPE/NT6X/PELOAD

#3
title 运行 Diskgenius 分区工具 \n Disk Genius DOS 版。\n 集多种功能于一身的超级工具软件。
pause --wait=0 Loading DOS Tool ...
map --mem %ufd%IMGS/DGDOS.LZMA (fd0) || map --mem %ufd%IMGS/DGDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 运行 Gdisk 一键分区工具 \n 基于Gdisk,在16位系统下运行的硬盘分区工具。
pause --wait=0 Loading DOS Tool ...
map --mem %ufd%IMGS/G_GDISK.LZMA (fd0) || map --mem %ufd%IMGS/G_GDISK.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 运行 Ghost 11.5.1 \n 功能强大的备份、还原工具,支持网络克隆。
configfile %ufd%VBE/GHOST.LST

title 运行 MAXDOS 工具箱 \n 基于MAXDOS 9.0,支持网络克隆,内附常用维护工具。
pause --wait=0 Loading DOS Tool ...
map --mem %ufd%IMGS/DOS.LZMA (fd0) || map --mem %ufd%IMGS/DOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 硬盘\内存检测工具集 \n 硬盘和内存检测工具。
configfile %ufd%VBE/RAMHDD.LST

title 密码相关工具集 \n BIOS及Windows密码破解相关工具。
configfile %ufd%VBE/PWD.LST

title 进入拓展接口 \n 全自动菜单。
command %ufd%VBE/automenu

title 启动硬盘操作系统 \n 启动第一块硬盘上第一个分区内的操作系统。
set sw=No
checkrange 0x80 read 0x8280 && if exist (hd0)/fb.cfg && set sw=yes
checkrange 0x23 read 0x8280 && if not exist (fd0)/fb.cfg && set sw=yes
if /i "%lst%"=="4UJ" && set sw=yes
if /i "%lst%"=="4BJ" && set sw=yes
set /a hdn=*0x475&0xff
if %hdn%>=2 && if "%sw%"=="yes" && map (hd1) (hd0)&& map (hd0) (hd1)
map %ufd%IMGS/BOOTFIX.ISO (0xfe) || map --mem %ufd%IMGS/BOOTFIX.ISO (0xfe)
if /i "%lst%"=="4UD" && set rehooka=yes
if /i "%lst%"=="4UJ" && set rehooka=yes
if /i "%rehooka%"=="yes" && map --rehook ! map --hook
chainloader (0xfe)
boot

title 重新启动计算机 \n \t
      reboot

title 关闭计算机 \n \t
      halt

不点 发表于 2016-3-6 21:50:11

有可能是 bug。

你能否通过测试很多版本,来确定究竟是从哪一天开始出现 bug 的吗?

2011yaya2007777 发表于 2016-3-6 21:59:37

本帖最后由 2011yaya2007777 于 2016-3-6 22:01 编辑

加载图像前,先加载vbe图形模式
graphicsmode-1100:1000100:100024:32
15.splashimage %ufd%VBE/BG.LZMA

超级坏蛋 发表于 2016-3-7 12:32:00

如果是vbe的问题,请用0.4.6a-2016-03-04 试试看,。

帆船 发表于 2016-3-8 13:07:21

不点 发表于 2016-3-6 21:50
有可能是 bug。

你能否通过测试很多版本,来确定究竟是从哪一天开始出现 bug 的吗?

您好,就是从grub4dos-0.4.6a-2016-02-15这个版本开始的。

帆船 发表于 2016-3-8 13:26:53

本帖最后由 帆船 于 2016-3-19 15:20 编辑

2011yaya2007777 发表于 2016-3-6 21:59
加载图像前,先加载vbe图形模式
graphicsmode-1100:1000100:100024:32
15.splashimage %ufd%VBE ...

谢谢,使用之后是这样子的:

界面并不完整。
PS:背景图片大小:1024*768
另:为什么早期版本不需要呢?……

2011yaya2007777 发表于 2016-3-8 14:47:36

graphicsmode-11024
试一试
若不合适,再调整1024值

不点 发表于 2016-3-8 15:00:40

本帖最后由 不点 于 2016-3-8 15:03 编辑

说两点看法。

1、既然新旧版本不同,那么,这就有可能是新版本引入的某个隐蔽 bug 造成的。yaya 应该核查一下究竟是不是 bug。

2、不使用 graphicsmode 命令,直接使用 splashimage 命令,这样的做法,是不推荐的;严格地说,是错误的。

splashimage 命令是不检查系统是否支持图片的分辨率,就直接采用图片的分辨率。这样做当然是不正确的。

与此相同,用 graphicsmode 命令直接设定某个分辨率的做法(例如 graphicsmode -1 800) ,也是错误的。因为你不知道 BIOS 是否支持这样的分辨率。

但是幸运的时候,也可能正好碰上 BIOS 支持这个分辨率的情况,那就没事。

然而终归那属于不正确的做法,应该予以纠正。

所以,你应该先修正你的菜单,然后再来试试还有什么 bug,并继续报告 bug。

对于用户所采用的不正确的做法,开发者有权不支持。

所以从用户的角度,应该严格要求自己,不要懈怠。

另一方面,开发者也应该从用户报告中察觉到可能的 bug 的存在,不要轻易让 bug 溜走。

即使用户菜单有问题,也不表示用户的 bug 报告一定是无效的。

2011yaya2007777 发表于 2016-3-8 17:14:25

为了避免多次加载图像,不设置vbe图像模式禁止加载图像。有人就喜欢直接加载图像。计划恢复原样。

帆船 发表于 2016-3-8 18:07:38

不点 发表于 2016-3-8 15:00
说两点看法。

1、既然新旧版本不同,那么,这就有可能是新版本引入的某个隐蔽 bug 造成的。yaya 应该核 ...

既然必须使用使用 graphicsmode 命令,而传统的自动探测分辨率的方法又不适应,用 graphicsmode 命令直接设定分辨率的方法也是错误的,那么我应该如何修正菜单呢?请指教!

不点 发表于 2016-3-9 11:42:44

帆船 发表于 2016-3-8 18:07
既然必须使用使用 graphicsmode 命令,而传统的自动探测分辨率的方法又不适应,用 graphicsmode 命令直接 ...

graphicsmode -1 -1 -1 24:32

这样可以保证 0.4.5c 进入 VBE 模式。

在 0.4.6a 中,yaya 支持了 16 位色,似乎还有 15 位色的模式,不知道 yaya 是否支持。假定不支持 15 位色,那么可以这样

graphicsmode -1 -1 -1 16:32

这些办法可以保证进入 VBE 模式(前提条件当然是 BIOS 首先要支持 VBE 才行),并选择最高分辨率。

由于 VBE 规范本身没有规定哪个分辨率是必须实现的,因此,你无论设定什么具体的某个分辨率,都是不能保证成功的。但是,如果限定的范围大一点,则成功率会高一些。我建议使用类似这样的范围:

graphicsmode -1 100:1000 100:1000 24:32

而不要使用定死的某个分辨率,比如 graphicsmode -1 800 600 24:32

有人说了:“那我的背景图片是 800x600 的,该怎么办?”

我的答复是:“图片不该使用小的分辨率。”你可以做一个尽可能大的图片,并尽量让这个图片在其他分辨率下也有效。如果图片分辨率比屏幕分辨率大,那么 grub4dos 会自动采用图片左上角的部分(图片的其余部分超出屏幕,因此不予显示),除此之外不会有其他问题的。

nikbobo 发表于 2016-3-19 10:01:57

不点 发表于 2016-3-9 11:42
graphicsmode -1 -1 -1 24:32

这样可以保证 0.4.5c 进入 VBE 模式。


能否修改为显示整张图片而不是左上角,即把图片拉伸再填充?

不点 发表于 2016-3-19 10:19:45

本帖最后由 不点 于 2016-3-19 10:25 编辑

nikbobo 发表于 2016-3-19 10:01
能否修改为显示整张图片而不是左上角,即把图片拉伸再填充?

开发方面的事,我不参与。要看目前的维护者、开发者是否有能力、有精力、有兴趣。

个人认为,图片拉伸以后,不精细了,不精美了。

用户应该针对不同的分辨率而使用不同的背景图片,这样图片不经过拉伸处理,因而仍然是精细的、清晰的。

fuldho 发表于 2016-3-19 12:32:19

先加载vbe图形模式
图片大小为:1024x768
graphicsmode-1640:1024480:76824:32
如果图片是ps做的jpg,用画图板另存一下,
虚拟启动可能会显示不全,由主板bios决定,实机会自动拉伸全屏。

nikbobo 发表于 2016-6-6 20:14:48

不点 发表于 2016-3-19 10:19
开发方面的事,我不参与。要看目前的维护者、开发者是否有能力、有精力、有兴趣。

个人认为,图片拉 ...

针对不同的分辨率而使用不同的背景图片?
具体应该怎么做?(相关命令?方法?)
而且机器分辨率那么多,如何保证每个分辨率都适应?

nikbobo 发表于 2016-6-6 20:14:52

不点 发表于 2016-3-19 10:19
开发方面的事,我不参与。要看目前的维护者、开发者是否有能力、有精力、有兴趣。

个人认为,图片拉 ...

针对不同的分辨率而使用不同的背景图片?
具体应该怎么做?(相关命令?方法?)
而且机器分辨率那么多,如何保证每个分辨率都适应?

不点 发表于 2016-6-7 08:47:27

nikbobo 发表于 2016-6-6 20:14
针对不同的分辨率而使用不同的背景图片?
具体应该怎么做?(相关命令?方法?)
而且机器分辨率那么多 ...

抱歉,不做这方面的开发了。连使用都减少了,逐步走向 “不使用”。

感兴趣的问题,答复一下。而对于自己没有使用经验的,也只能说个大概的思路,不可能给出详细的教程。

力所能及的,可以做一下。做不了的,不勉强做。

那些与我过去的开发有关的问题,那些必须由我来回答或解决的问题,我会尽力。其他那些问题,可能我接触得少,记忆力减退,我越来越感到生疏,就不再勉为其难了。

页: [1]
查看完整版本: 关于grub4dos-0.4.6a-2016-02-15及之后的版本