|
[原创]星际争霸汉化模块
呃,看来干脆我把所有版本的偏移都加上好了,估计要一整天了. 建议你在outputstring下断,自己把1.09b的偏移挨个加上.. 或者建议你用 1.08b(平衡修正版本,之后的都是解决BUG,经典版本),1.11b(最后一个使用老格式地图的版本),或 1.16.1(目前最新,可能是最终版本了吧) show show 我收集的星际争霸版本吧 |
|
|
|
[原创]星际争霸汉化模块
结束星际争霸汉化的研究,做一下总结: 汉化一个英文游戏,主要包含2个方面: 1.原始字符串的提取并翻译,有几种方式: 1.1 静态资源汉化:提取资源,然后翻译其中的字符,并回写,这涉及很多方面,包括资源格式,当然,工作量往往很大,而且会存在汉化遗漏的问题. 1.2 实时动态汉化:在字符串即将显示时,进行即时汉化,由于是实时获取,所以,只需分析内存中有关字符串处理的结构即可,把游戏大致玩一遍,保存所有程序传过来的字符串,然后把这些字符串翻译做成字典,那么,在使用时,根据这个字典实时翻译即可.当然这其中包含一些技巧,例如 字符串通配算法,翻译缓存,字典的管理.它们决定了实时翻译的速度. 2.修正中文显示支持: 2.1 中文的显示 ANSI语言的程序员(其实绝大多数没双字节概念的程序员都有这个问题)会假设字符串是单字节的,直接++,而不是_tcsinc. 由于ASCII的字符数很有限,游戏开发者为了优化游戏性能,可能会做成字库,但中文就死翘翘了. 两种办法解决: 2.1.1 制作一个包含游戏用到几种大小的包含所有字符的字库(字符图片),这个办法性能一般较快,因为等需要显示时,直接把字符所对应的点阵拷贝过去就可以了,但是由于中文(仅GB2312部分)字符在7000左右,如果游戏用到了3个大小的字体,哦...可以想象这个字库是多大了. 2.1.2 现在的计算机处理字符已经非常快了,另外,游戏出现大量对白的画面毕竟少数,所以,采用GDI绘制到一个bitmap缓冲,然后贴图,这也是一个办法,比起前者,灵活性较高.通过算法优化,速度不比前者差.(现在支持中文/日文/韩文的游戏一般采用这个办法) 2.2 更多信息 我们要显示字符,不可能仅仅把字符贴到(0,0)的位置上,还包括以下信息 2.2.0 绘图目标:surface/缓冲的起始地址,宽度,高度,色深,最终的字符串图片会合成到这个缓存的准确内存地址. 2.2.1 绘图坐标:决定字符串的显示位置 2.2.2 绘图区域:决定字符串的区域,有多少宽,有多少高 2.2.3 字符串风格:斜体/粗体,字体大小,这些决定了我们该使用的中文字体的height和weight 2.2.4 颜色:是的,还有颜色,当然,可能还包括透明度,先生成256色深的白底黑字的图片,然后转成具有alpha等级的对应颜色点阵图. 2.2.4 其他:默认的单字符宽度,默认的TAB宽度等 |
|
[已解决]VC2008写内存一夜未成功
可能你用了某些OD插件,也在hook此函数. |
|
[下载]《UpK论坛2008精华集》
比起一些老论坛,upk越来越好啦! |
|
|
|
DriverMonitor(DriverStudio 3.2中提取出的完整版支持VxD,KDM,WDM驱动)
缺少 DbgMsg.sys,DbgNet.sys |
|
[分享]Patch msvcrt.dll/ntdll.dll 提升系统浮点性能
第三点比较有意义 你看一下 atan/ceil/exp/floor/log/log10/modf/pow 的asm源代码,就会明白了,为什么它们用 SSE/SSE2 要更快. |
|
[分享]Patch msvcrt.dll/ntdll.dll 提升系统浮点性能
更正一下: _ftol 的修正是错误的,原型是 __int64 _ftol(double x),我错当作 int _ftol(double x) 对于返回 __int64 的话,msvcrt.dll自带的代码就差不多了,无多大的改进必要 |
|
[求助]所谓的函数导出 是怎么看的?
depend.exe,exescope,lordpe,etc |
|
[求助]求一个C++6.0 MSDN下载地址(中文版)
MSDN2005以后才有中文,但也仅限于IDE等部分,涉及类,语言的都是英语,建议上 MSDN中国 网站去看,相信那里的中文化是最新的,相对更完善的 |
|
[原创]让VC7系列生成VC6支持PDB格式,以便VC6IDE可以调试
刚才看了一下,因为 mspdb60.dll 是连接到 msvcr70.dll的,所以,加了这个mspdb60.dll ,还需要 msvcr70.dll,不过从XP开始,系统已经自带这个dll了. 建议你使用 VC6的lib,这样才能保证不会连接到早期系统不存在的函数啊. 由于这个mspdb60.dll 只能识别早期 VC7.0和更早期的VC6之类的生成的obj中的提示信息,所以,如果你使用新版VC生成的obj/lib,那么其中的信息是会忽略的,警告是 warning LNK4231: /TMP incompatible 什么的(当然,你用这个修改版编译器生成的obj/lib不存在这个问题,因为本身是通过 mspdb60.dll 生成的).如果你不调试进入lib的领空,连接到新版VC生成的obj/lib也没关系.如果打算用新版VC的ATL,MFC,你可以用这个修改后的编译器重建一次,这样,调试时会比较方便. |
|
|
|
[分享]扬耀网络高薪诚聘-反外挂工程师
16W 在上海还是低了点 |
|
[原创]让VC7系列生成VC6支持PDB格式,以便VC6IDE可以调试
附件已上传,适合懒人解压覆盖.. |
|
[原创]让VC7系列生成VC6支持PDB格式,以便VC6IDE可以调试
现在,可以继续使用 VC6这个轻快的IDE,配合VAX的书写代码提示,然后用VC7.1这个更标准的编译器编译了 还可以再拷贝一个 vcpkg,从而自动切换编译平台生成 i386/amd64 的目标文件 enjoy it! |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值