2005年06月10日

RADEON 9550(530元) -> FireGL T2 (专业图卡)

上周末买了块RADEON 9550卡(530元), 为了使用MPE的虚拟现实能力,需要将它软修改成专业显示卡(FireGL), 通过上次将Nvidia Geforce MX 440变成Quadro 的经历,知道了有个工具特别棒,它就是RivaTuner,其相关的网址是http://forums.guru3d.com/,进入论坛并选RivaTuner,可以下载到相应的工具 RivaTuner v2.0 RC 15.5。

一、RADEON 9550 -> 9600 Pro

Flashrom.exe: DOS下刷新BIOS的工具,其ROM文件越新越好
ATI BiosEdit 2.7: 修改Devices ID
UltraEdit: 16进制编辑软件

经过了解知道,RADEON 9550卡本质上是RADEON 9600,不过需要通过刷新BIOS来实现,
1>   可以通过RivaTuner /bi读出原来显示卡的BIOS,系统随机保存了一个名字xxxxx.rom,将它改成ATI9550.ROM,并复制一份为BACKUP.ROM.

2>   使用VC++或其他二进制编辑工具打开ATI9550.ROM,找到“0070h”这一行, 将44 52 28 37 93(“0074h”位置的偏移量, 也可能为其他数字)的93改为92(RV350核心是90,RV360核心是92)并保存。
编辑ATI9550.ROM

3>   打开BiosEdit,首先在程序右上角的in file CheckSum OFF前面,打上勾,不然会出错,然后,点Load Bios,打开ATI9550.rom文件,然后记住左面“Dev”选项框中的显卡“Subsystem ID”和“Subvendor ID”,这两个值我们不会修改。点击左边的“Edit”,在“Device ID”中输入4152(RV360,9600XT)或者4150(RV350,其余的9600系列),Subsystem ID(0002)和Subvendor ID(1002=ATI)保持和原显卡一致,编辑完成后点“Edit End”即可;
     右边四个数字,是你的显卡频率,左上角为,显存频率,左下角为核心频率,右上角为调节后的显存换算成DDR的频率,右下角是调节后的核心频率(其中“Effective”下面就是你的实际显存频率和核心频率),可点右边的小黑三角形进行超频,此处我们修改为核心频率400MHz、显存频率500MHz,注意,在超频前一定要先用ATITOOL等工具,测试出你的显卡能承受的频率,不然刷入BIOS后,可能有引起显卡损坏。
    都调好以后,点Save Bios,保存为9550Hack.ROM。
 

4>  使用VFloppy工具并使用WinImage修改其自带的Win98启动镜像BOOTDISK.IMG, 将其中不需要的文件删除,然后添加 ATI BIOS刷行工具文件(Flashrom.exe, Flashrom.cfg, Flashrom.rom)以及显卡的BIOS文件(包括原来备份的BIOS文件 BACKUP.ROM 和刚才修改的BIOS文件 9550Hack.rom),保存新的启动镜像文件MyBoot.Img

5>  使用VFloppy并利用刚才制作的镜像文件MyBoot.Img制作XP环境下的DOS启动环境

6>  在DOS环境下面使用 Flashrom -p 0 9550Hack.rom -f -sst 刷新显卡的BIOS为新修改的BIOS文件,重新启动计算机

7>  在启动的XP环境下,系统提示找到新的VGA卡并安装启动程序,可以看到,XP已经将显卡认为是 ATI RADEON 9600 Pro,成功!!!!

二、RADEON 9600 Pro -> FireGL T2
下面文字引自 参考网址:http://www.newbietech.net/bbs/cn/viewthread.php?tid=751  (有修改)

15.5 RT(RivaTuner) 软改 ATI FireGL 8.083 驱动方法

相关内容超强链接:
http://forums.guru3d.com/showthread.php?s=&threadid=119992
http://forums.guru3d.com/showthread.php?s=&threadid=129197

新版15.5 RT 软改 8.083驱动方法
这个方法对 9600/9800/X800 系列都有效,9550 要用刷 BIOS 的方法改成 9600 后才能改。
一、 准备工作

1、ATI FireGL Unified Driver Version 8.083 (Display Driver & Control Panel下载:

firegl-unified-8.083.exe

2、3DMAX 优化驱动:

fireglmax8083.exe

3、当然还有 RC15.5 RivaTuner ,RT 讨论版块有下载连接

4、这个贴带的附件中包含有 /解包文件:unpack.bat / C2_19953.INI /CX_19953.INI /C2_19953.inf /CX_19953.inf 共 5 个文件,下载后待用。


二、驱动破解

1、把下载的驱动、驱动面版、优化驱动用 WINRAR 解压到各自的目录中。

2、建立一个 MOD 目录,比如 c:\MOD

3、将 unpack.bat 拷贝到 MOD 目录中(位于附件压缩包中)

4、将 ati2mtag.sy_ 文件(位于 …\ati_firegl_drv8083\2KXP_INF\B_19827 目录中)拷贝到 MOD 目录中

5、双击运行 unpack.bat 文件,运行结束后,删除 ati2mtag.sy_ 文件。

6、进入 RT 的 ATI 脚本目录(…\RivaTuner v2.0 RC 15.4 \PatchScripts\ATI\SoftFireGL\Unified),双击运行 SoftFireGL w2k.rts 脚本,在询问目标文件路径的时候指向 c:\MOD 目录,完成破解。

注意:在对话框的下拉菜单中要选择对应你的显卡的专业型号。

对应关系:
ATI RADEON 9600@FireGL T2
ATI RADEON 9700@FireGL X1
ATI RADEON 9800@FireGL X2
ATI RADEON 9800SE@FireGL X2 (4 Pipes)
ATI RADEON 9800XT@FireGL X2
ATI RADEON X800系列@FireGL X3



7、进入 RT 的 ATI 脚本目录(…\RivaTuner v2.0 RC 15.4 \PatchScripts\ATI\ATIOverclockingAntiprotection),双击运行 ATIOverclockingAntiprotection w2k.rts 脚本,在询问目标文件路径的时候指向 c:\MOD 目录,完成破解。这一步是为了破解 ATI 驱动的超频限制,也可以不做。

8、进入 MOD 目录,将 *.OLD 文件删除,将 ati2mtag.sys  改名为 ati2mtag.sy_ ,然后将这个文件拷贝回原来的目录(位于 …\ati_firegl_drv8083\2KXP_INF\B_19827 ),覆盖原文件。

9、将附件中的 C2_18678.INI 和 CX_18678.INI 文件拷贝到 驱动目录中(…\ATI_firegldisplaydriver-8062\),覆盖原文件;将C2_18678.inf 和CX_18678.inf 文件拷贝到 …\ATI_firegldisplaydriver-8062\2KXP_INF\ 目录中,覆盖原文件。

到此驱动修改部分完成。

三、驱动安装

1、到控制面版的“添加删除程序”中,将当前的 ATI 驱动卸载。要卸载干净。

2、重启系统,当系统提示找到新硬件的时候,指向破解好的驱动目录(…\ati_firegl_drv8083\2KXP_INF),让系统安装好驱动。这里系统会检测两次,两次都指向破解驱动目录就可以了。

3、驱动安装好了以后,直接安装驱动面板即可。

四、3DMAX 优化驱动破解、安装

1、进入 RT 的 ATI 脚本目录(…\RivaTuner v2.0 RC 15.4 \PatchScripts\ATI\SoftFireGL\Unified\Antiprotection\FGLMax),双击运行 Installer antiprotection.rts 脚本,然后指向优化驱动的安装文件的目录中(…\ati_fire_3dmax614105015),完成破解。

2、运行 SETUP.EXE 安装这个破解的优化驱动。

3、再次进入 RT 的 ATI 脚本目录(…\RivaTuner v2.0 RC 15.4 \PatchScripts\ATI\SoftFireGL\Unified\Antiprotection\FGLMax),运行另外一个脚本 atiimxgl.exe antiprotection.rts,指向第二步中安装的优化驱动的安装目录中(默认情况下,这个优化驱动会安装在: c:\Program Files\ATI Technologies\Fire GL 3D Studio Max\),破解 atiimxgl.exe 文件。

优化驱动破解完成。

三、测试新的FireGL T2

2005年06月07日

      今天试验MPE和VC的集成问题,主要是证实Express输出的类用在VC++开发环境,可以支持MPE提供的虚拟显示功能,试验应该说是成功的。注意在使用鼠标在MPE新弹出的MPE虚拟显示窗口中移动时,系统崩溃,但可以通过在原来的窗口中移动鼠标达到旋转,缩放,平移等操作。

        使用的是MPE 6.2,在利用软件自带的tutor/mfc/geomview.v输出时,发现产生的express.h文件没有加入包含文件fmpc_gen.hxx和FMPcommMods_Init 的定义,从而导致编译时产生很多函数没有定义的情况,在将软件自动产生的express.h中加入如下代码后,编译通过。

#ifdef __cplusplus
#include "wand\fmp_comm\fmpc_gen.hxx"
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifdef MSDOS
void FMPcommMods_Init (int *argc, char **argv, HINSTANCE *hInst, HINSTANCE *hPrevInst);
#else
void FMPcommMods_Init (int *argc, char **argv);
#endif
#ifdef __cplusplus
}
#endif

    观察发现, 实际上MPE版和原来的开发版产生的express.mk基本没有区别,主要就是添加了MPU需要的相关库,即 libwand.a, libgdmpu.a, liblic.lib, NtQuerySemaphore.lib;另外,MPE的MPU render的数字常数为5 (software = 1, OpenGL = 2)。

   下一步工作:

    关于新弹出的MPE窗口鼠标移动时崩溃的问题,有待继续研究;另一个试验方向是,让OpenGL显示和立体显示在同一个窗口是否可能?

2005年06月03日

      今天继续学习Red Book(Programming – OpenGL Programming Guide) P8 Animation中有句话“the video refresh rate is constant, which can have some unexpected performance consequences.”以及下面的解释给我启发很大, 提示我为了提高动画或者交互的帧率,并不是一味最求高显示器刷新率就好,应该根据具体的显示场景和显卡的配置,动态调整显示器的刷新率。比如,如果你的图形实际显示(rendering)需要1/95秒,你设置显示器刷新率为85Hz,  也就是说你的图形可以在一个刷新周期完成(1/95 < 1/85),然后有1/85-1/95的空闲时间,所以你得到的动画或交互帧率就是85fps, 而此时如果你将显示器刷新率调整为120Hz, 由于2*1/120 > 1/95 > 1/120,因而显示需要在两(2)个刷新周期内完成,当然有1/60-1/95的空闲时间,你实际得到的动画或交互帧率其实只有 60fps。

    结论:根据实际情况灵活调整显示器的刷新率有助于获得更高的动画或交互帧率(性能)。

2005年06月02日

今天学 Red Book: Programing – OpenGL Programing Guide,发现里面的链接ftp://sgigate.sgi.com已经不可以用,改成ftp://ftp.sgi.com