笔记本上使用LPT口的GBA烧录卡

最近怀旧病发作,入了一根PCI-Express转LPT(打印口)的转接线。这样我的笔记本也能有打印口,从而支持GBA游戏烧录。

然后看到有这个有爱的帖子,《火线烧录的相关科普知识及软件下载》
http://forum.tgbus.com/viewthread.php?tid=2365432&extra=page%3D2

在里面我找到了坑爹的火线烧录程序破解版,省去了我自己搞掂它的时间限制的麻烦。于是我有了:
1、火线3.0烧录程序破解版。
2、LPT(打印口)的火线一根。
3、GBA烧录卡及原装GBASP一台。
4、蛋疼的PCI-Express转LPT(打印口)转接线一根。

接下来,win7操作系统不用想了,64位32位都没有机会,因为winio.dll是xp的版本。所以想要烧录必须增加这个条件:
5、XP操作系统。

有了这些还不够,坑爹的LPT地址问题出现了。因为这种接口以前是主板上带着的,一般都是固定地址的,所以地址就被硬编码到火线的程序中去了。打开火线,切到设置界面,有个”默认LPT端口”什么的选项,勾掉之后就可以在下拉菜单中选择:

看图,火线的默认端口地址就是LPT1(378)。

我们看到地址有很多,LPT1(0x378),LPT2(xxx)什么的。但基本不用想直接用,因为只要不是主板上自带的LPT,而是用转接线,地址一定是大于0x1000的。虽然火线开发者后面有做PCI2LPT1/PCI2LPT2,貌似是给转接卡用的,但是这里的地址被硬编码到0x9000和0x9400,不一定和手头的转接线地址相符。因此我们还需要做2件事情:
a) 搞清楚手头的LPT端口地址是神马?
b) 把这个地址写到火线烧录程序里面去。

==========================================
如何搞清楚当前转接线的LPT的地址呢?答案是打开(控制面板==>系统==>设备管理器,你懂的,就是那个设备管理器嘛)
然后看(端口==>LPT1,或者你自己买的神马转接线,总之应该在端口下面有叫做LPT的端口)
双击看它的属性,切换到资源页,看I/O范围的值,很可能有两项,不用管,只看第一项,它是AAAA – BBBB的形式。
好吧,说了这么多,LPT的地址就是这个AAAA。


看到图的话,我这里是4CE8,问题(a)解决:LPT的地址到手,4CE8
==========================================

然后我们来解决第二个问题,那就是如何把这个值弄到火线的烧录程序里。这就需要修改程序代码了,因为火线烧录程序木有提供输入LPT地址的地方。不得不说那个火线破解版很赞,去掉了火线坑爹的时间限制代码,但它居然不厚道的加了壳。所以如果你决定手动修改火线破解版(= =b),先要找个脱壳的东西,比如FileScanner之类的就可以。在命令行执行:fs -u gabfire.exe,脱掉蛋疼的壳,搞出一个比原来exe大一些的exe,只有这样程序才可以直接修改,否则你搜不到我说的那一串数。

接下来就好办了,我直接上结论,假如我们修改火线默认选项中LPT1(378) 的地址,方法如下:
1、需要有WinHex这个软件,或者你熟悉其他16进制编辑器也可以,我们要用到搜索==>查找16进制数值(ctrl+alt+f)功能。

2、对于脱壳的3.0版火线,搜索C7812403000078030000这一串16进制数,我保证应该只能搜出一个位置。
对于脱壳的2.6版火线,搜索C7811C03000078030000这一串16进制数,也应该只有一个位置有。

3、我标黑的那个地方就是程序内设的LPT1的地址,玩过游戏内存数据修改的就会明白,这就是LPT1的默认地址378,被反转高低位写在内存里。

4、对于我的LPT转接线,地址应该是4CE8,反过来写就是E84C,所以只要把7803改成E84C即可完成任务。
注意!E84C是我手头的转接线给出的地址,不同牌子的转接线地址是不一样的,甚至重启之后有的转接线地址也会变。

保存之后,我们得到了一个符合自己的打印口地址的火线定制客户端。
==========================================

好吧,万事俱备!运行火线,gbasp开机select+start按住,进入gba的扩展模式,再点火线识别卡带(这些操作火线说明书上有写)!

叮叮叮是不是识别出来了?恭喜!!经过一系列复杂的折腾,我们终于可以在没有LPT(打印口)的笔记本上使用火线烧录了!

嗯嗯……或许你一次不能成功= =b,那就需要注意下是不是选了火线中的LPT1?地址是不是修改对了?你的转接线究竟好不好使?不要买街上那种20块的usb转lpt线,那种不行的。要买PCMIC转LPT或者PCI-Express转LPT的线……

神马?这种线很贵?比usb的烧录卡还贵?嗯嗯……你知道的,有时候人就是这么蛋疼= =b

(本帖完)

==========================================
PS1:
最后吐个槽,我手头的神州卡II 256m的那种,火线识别不能。但是另外一款烧录软件Magic Flash 2.0可以识别。还有,火线的水蓝卡恢复存档这个功能一直不好使,我不知道是不是存档格式的问题。备份下来都是64k,切割一下可以给VBA用。但是无论如何都没办法恢复到卡上。以后再研究吧,不知道是不是我的水蓝卡没电了= =b。

PS2:
如果有人想修改Magic Flash的默认LPT地址,稍微麻烦一些。脱壳要用Armadillounpack,得到脱壳的版本后,搜索C705685A4F004001,应该可以搜到2个位置符合。里面的4001是第四个端口LPT4(140)的地址,把两处的4001统统改成需要的地址,比如像我那种改成E84C就可以了。注意这样修改之后,要在设置里选LPT4哦。不改LPT1是因为LPT1的地址有4个,改起来费劲。

Leave a Reply

Your email address will not be published. Required fields are marked *