关于winulator转换文件的原理分析
winulator吧
全部回复
仅看楼主
level 5
前不久在论坛里看到了winulator这个小东西,感觉挺神奇的,才几兆竟可以使1.4g的starcraft很流畅的运行在android上。相比之下bouchs的虚拟机多少有些逊色。
2013年12月13日 14点12分 1
level 5
在高兴之余我也不时的再找有没有更多的转换游戏,于是就上网搜了下,貌似就两个,一个星际另一个是凯撒3,有点失望,偶然间发现了国人转换的handkercief,由于是老玩家了。当时的激动之情油然而生呢。兴冲冲的下来之后才发现怎么弄都没办法玩。很伤心,可是又很好奇到底是哪里做错了。于是就花了一下午对winulator进行了一番研究。
2013年12月13日 14点12分 2
level 5
首先必须要讲的是,确实是上当了,因为那个根本就是假冒伪劣产品,根本不能玩,具体分析以下展开。
winulator这个软件和mac机上的crossover差不多,也是通过对程序地址的偏移运算实现的,这一点从最初的凯撒3的转换文件可以看出来。
这个程序要实现转换至少需要两个文件,一个是对具体程序的描述文件,包括地址偏移的具体规则,一般叫做 XX.WCH。另一个是profile文件,这个文件是对x86和android的接口,告诉转换器exe在哪里。转换器要做的是将exe部分的api按照wch的描述进行偏移,然后打包成一个成品文件。
2013年12月13日 14点12分 3
我能让红警出现在菜单中但是不能运行这是怎么回事
2015年05月26日 09点05分
回复
����������ǰ��
:是这样,计算机运行的程序虽然都是用机器码写成的,但是不同的架构对机器码的读取是不一样的,比如要输出01010101这个字符串,x86可能就会分成两组读取,并且顺序相反,即“1010”和“1010”,但linux可能就直接正序将8位全部读取了,虽然二者的目的一样——读取这个字符串
2015年05月27日 11点05分
回复
����������ǰ��
:但做法是不同的,这也就是为什么pc游戏不能直接在手机上跑。这个程序所做的就是将星际争霸要用到的window里的api翻译成安卓可以读的形式,但是要知道并不是每个程序所调用的api都一样,可能这个游戏用到的函数另外的游戏就用不到,所以即便你能把红警放到里面去转换
2015年05月27日 12点05分
回复
����������ǰ��
:但是没有对应的程序去把相应的函数“翻译”过来,一样是没办法用得。这也是为什么即使是wine这种比较成熟的方法至今支持的游戏不过百个的原因了——费力不讨好,有这功夫不如直接虚拟机更效率。
2015年05月27日 12点05分
level 5
有同学可能要问了,为什么2.0以后的版本只要一个profile文件就可以了?因为根据原作者的官方说法,我已经将那部分api的转换规则写进了程序里,不再需要pc端的操作,也就是不需要转换器这个东西的存在了。这也就解释了为什么wch helper只有1.4.1版了。
2013年12月13日 14点12分 4
是否是说只有部分游戏不再需要wch了,但许多尚未zhichi的依旧需要wch?
2014年11月21日 20点11分
回复 谁的长乐未央 :没错,官方只承诺保证星际能玩,对其他游戏的支持尚不明确
2014年11月22日 00点11分
回复 谁的长乐未央 :说实话这个已经很落后了,wine for android 即将发布,等wine吧
2014年11月22日 00点11分
level 5
其实实现游戏转换最重要的是wch文件的编辑,这个文件由hash码、jumptable(偏移规则)、indirectjumptable(间接偏移量)三部分构成。hash码的作用是标记程序。以凯撒3的转换文件为例,这里面有5个hash码,如果你逐个的去依据hash码找文件会发现这5个是同一个文件,叫c3.exe,凯撒3的执行文件(原作者blog上说是为了适配不同的版本)。jumptable和indirect jumptable这两部分和exe的内存地址很像,而且有大小区间的限制,我想应该是api的转换规则,或者是内存使用规则,c语言学的不好,只能解释到这里了。
2013年12月13日 15点12分 5
level 5
profile文件的编辑很简单,就是告诉转换器 exe文件的地址,这个正常人一看就会。
2013年12月13日 15点12分 6
level 5
接下来我们就看看国人转换的这个奇葩成果吧。
从表面上看没问题,但是仔细看就会发现 那个dll文件,这个游戏根本就用不到。如果带着这条规则,你没这个,转换器会告诉你找不到文件;你有这个,转换器会告诉你错误,因为游戏用不到,程序不会调用,api也就无从转换了。坑爹啊
2013年12月13日 15点12分 7
level 5
最后时profile文件了,这个好歹还有点良心,但是您好歹把最后的那两段删了吧,一个act游戏怎么会有rts特有的maps文件夹。。。
2013年12月13日 15点12分 9
level 5
还有,最后就是随包附送的游戏,因为是精简过的,hash值读不出来,转换器会提示too few bit。我特地换成了英文原版之后,才发现的hash这个东西的真正作用。
2013年12月13日 15点12分 10
level 5
总之,我写这个东西不是为了黑谁也不是为了难为谁,主要是想给大家科普下winulator的基本知识,同时也想表达一下我心中的怒火,假货骗人的东西始终是假的,不但浪费玩家的感情也浪费别人的时间。同时呢,也希望国人能真正的做出些“移植”。
2013年12月13日 15点12分 11
里面的核心文件用C语言编写 ,封装在里面,安卓反编译就能看
2020年10月02日 12点10分
level 5
不喜勿喷,纯属个人见解。
2013年12月13日 15点12分 12
请教一个问题 winulator进入游戏后的beta水印有办法可以去掉吗 我知道有个破解版 可那个破解版有BUG 真心想去掉那个水印
2013年12月14日 03点12分
回复 libiyu170 :可以去掉,2.1付费破解版已经实现了去水印的效果。 地址[无效] http://pan.baidu.com/s/1em20K
2013年12月14日 03点12分
这个是2.0.1的破解版 经我测试 发现神族的某些单位有时变成透明的 而且有时候水晶塔会失去作用 无法建造建筑(ai也会就此卡住) 而2.0.2版本没有这样的问题 所以能不能有办法把2.0.2的水印去掉
2013年12月14日 07点12分
回复 libiyu170 :破解不难,就是折腾一回太费时间了,要搭建java环境,再破解(其实就是换掉res里的一个png文件)、签名。如果不是完美主义者就等等吧,总会有人做得。。。如果喜欢自己动手可以参考百度上破解apk的教程,一看就懂得。还有,这个最新的好像到了2.0.3了吧。[吐舌]
2013年12月16日 09点12分
level 11
楼主辛苦了
2013年12月15日 10点12分 13
客气客气。[呵呵]
2013年12月16日 09点12分
level 8
官方到底有没有动作[不高兴]
    –––––大家好我是新人,如果有什么冒犯的地方。你他妈来打我啊!
2013年12月15日 12点12分 14
官方当初的目的就是为了移植星际争霸,现在已经实现了当初的承诺----不再需要wch完美支持。所以没动作也正常。毕竟客户是小众,pc始终是pc,有多少人会在乎安卓呢?而且50块的收费(按1比6的汇率,连1刀都不到)根本不足以支持继续开发了,理解官方吧。
2013年12月16日 09点12分
错了,是10刀。
2013年12月16日 09点12分
level 4
可以自己搞转换吗?
2013年12月15日 15点12分 15
应该是可以的,按照安卓4.0的配置应该大部分win98平台的游戏都能完美模拟。不过它这堆地址偏移规则需要花些日子才能读懂,转换就更要时间了。现在人们都忙忙碌碌的上学,上班,为生存奋斗着,很少有人会沉下心来研究这个的。。。
2013年12月16日 09点12分
回复 沐雪婼非 : 嗯,研究这个估计也是老一辈对98游戏怀念才有兴趣的
2013年12月16日 15点12分
回复 @沐雪婼非 :如果给你一把钱 你能搞吗
2013年12月19日 14点12分
回复 注册用户_登录 :。。。我其实是搞金融的,只是兴趣而已,有兴趣多交流吧。
2013年12月20日 12点12分
level 11
不明觉厉
2013年12月16日 00点12分 16
客气客气 [呵呵]
2013年12月16日 09点12分
回复 沐雪婼非 :高端
2013年12月16日 12点12分
level 8
楼主太厉害了。
2013年12月16日 14点12分 17
互相学习吧 [吐舌]
2013年12月16日 14点12分
level 13
流弊[真棒][真棒][真棒][真棒]
2013年12月16日 15点12分 18
过奖了 [哈哈]
2013年12月17日 02点12分
level 1
lz辛苦,我一直在关注这个呢
指望大虾了
2014年01月02日 17点01分 19
level 2
虽然看不明白但是还是支持
2014年01月25日 00点01分 20

2014年01月25日 08点01分
level 1
楼主有能力自己移植仙剑2,3吗?
2014年03月03日 16点03分 22
能不能移植先另说,仙剑从2起就进入window时代了,如果想要移植,安卓机器起码要到安卓6.0,或者更高,毕竟安卓只是个高级的java模拟器,系统效能实在不高。
2014年03月06日 04点03分
1 2 3 尾页