一.需要准备的工具。
1.游戏的原文件,最好是未经jm,fj等处理过的原版。
2.修改需要用的软件说明一 ----反编译软件
3.修改需要用的软件说明二---十六进制编辑器(这里建议使用winhex)
其余辅助工具:
1.windows自带的计算器或其他同类型软件。
2.自己手机相应的模拟器或者其他相近的同类型软件(测试用,方便的话使用真机。)
3.截图工具。
4.ue附带的UltraCompare文本比较软件或其他同类型软件。(未用)
二.分析需要修改之处
今天主要实例讲解BounceBack这个非自适应屏幕的,无法用jm可以简单处理掉的游戏的分辨率的修改。修改按键请参照之前的一些教程。原版为NOKIA S60 分辨176*208,修为128*144(波导s689 by ll)和128*160(阿卡556等)两个尺寸。讲解以我使用的阿卡为例。
1.解压缩游戏文件。 (winrar应该都会用吧。。)
2.粗略搜索。
经过粗略查找后发现和屏幕相关的需要修改之处主要集中在h.class和i.class中。
(这里搜索的关键字为s60系列游戏的尺寸176和208这两个数值,同时我们也需要对其余一些比较常见的品牌机型游戏的尺寸有所了解。)
搜索结果为。h.class中有一处,i.class中有5处。
3.试探修改&深入分析
因为已经很明确原尺寸176*208与目标尺寸128*160了,所以可以直接先把这两个替换掉再做深入的分析和进一步的修改。
1)首先介绍下替换的步骤。。。这也算炒冷饭了。
如上图所示,下面就是实际操作了。
用反编译软件察看解压后的class文件来确定位置(第一步已经做过);
然后使用十六进制编辑器直接修改class文件。那么这里也就牵涉到十六进制的换算。
(直接使用windows自带的计算机就可以了,具体也不必太深人了解十六进制的换算,有兴趣的可以找cj以前写的一篇游戏修改教程(joyes的游戏论坛的精华中可以找到)后附的一段相关文章。)
在计算机中选择 察看——科学型,输入数值后点击十六进制即可。
但在class文件中我们会看到其数值会是下面这种形式:
十进制 十六进制 —— 十进制 十六进制
176 1100B0 —— 128 110080
208 1100D0 —— 160 1100A0
特别说明一下:
0-127 显示为1000-107F
128以上都是1100xx的形式
计算器算出的是最后两位,这点不用深究,记住就行。
打开winhex,打开h.class,如图操作:
搜索完后会弹出窗口显示搜索到的数量,同时在窗口上部列表显示,点击可以直接跳转到相应的位置。(这就是为啥用winhex的原因。。)
在h.class中一共搜索到8处,但只有一处后面跟着的是1100D0,从图中我们可以看到其余的1100B0后面连着的是1100B3,实际上也就是179。此处先略过,容后补述。
那么我们要做的就是替换着几个数值,当然也可以直接把光标移到需修改处后直接用键盘打上去。但当数量多时还是建议使用替换功能。
同样在搜索菜单中选择替换十六进制数值。
按确定就ok了。
但是当拖回去用模拟器或者真机试验时会发现原来的生命显示条还是看不见。怎么办呢?
2)下面我们首先要了解一下本素材中牵涉到的几个Graphics 类的绘制方法:
1>drawImage(图片,X坐标,Y坐标,方式) 。
2>setClip(X坐标,Y坐标,宽度,长度),将当前剪贴区设置为由给定坐标指定的矩形。
3>fillRect(x坐标,Y坐标,宽度,长度) 填充指定的矩形。
更多可点击参阅
接下来我们可以看看下面这张图片,可以用qq带的截图工具或者其他截图工具来大概确定位置。
如果你没有s60模拟器的话,可以用windows自带的画板画一下,熟悉了后看一眼大概就会知道位置了。
那么我们首先来试着修改一下这两个位置:
179与原长度208相差29个像素,换算到128*160的屏幕上,游戏画面的长度就应为160-29=131。
157与原宽度176相差19个像素,换算到128*160的屏幕上,生命数量的位置的x坐标应为128-19=109。同理,y坐标应为160-(208-185)=137。
其余同理。
179 1100B3——131 110083
157 11009D——109 11006D
185 1100B9——137 110089
187 1100BB——139 11008B
按照之前的步骤替换掉这些数值,然后我们来看看成果:
1.游戏的原文件,最好是未经jm,fj等处理过的原版。
2.修改需要用的软件说明一 ----反编译软件
3.修改需要用的软件说明二---十六进制编辑器(这里建议使用winhex)
其余辅助工具:
1.windows自带的计算器或其他同类型软件。
2.自己手机相应的模拟器或者其他相近的同类型软件(测试用,方便的话使用真机。)
3.截图工具。
4.ue附带的UltraCompare文本比较软件或其他同类型软件。(未用)
二.分析需要修改之处
今天主要实例讲解BounceBack这个非自适应屏幕的,无法用jm可以简单处理掉的游戏的分辨率的修改。修改按键请参照之前的一些教程。原版为NOKIA S60 分辨176*208,修为128*144(波导s689 by ll)和128*160(阿卡556等)两个尺寸。讲解以我使用的阿卡为例。
1.解压缩游戏文件。 (winrar应该都会用吧。。)
2.粗略搜索。
经过粗略查找后发现和屏幕相关的需要修改之处主要集中在h.class和i.class中。
(这里搜索的关键字为s60系列游戏的尺寸176和208这两个数值,同时我们也需要对其余一些比较常见的品牌机型游戏的尺寸有所了解。)
搜索结果为。h.class中有一处,i.class中有5处。
3.试探修改&深入分析
因为已经很明确原尺寸176*208与目标尺寸128*160了,所以可以直接先把这两个替换掉再做深入的分析和进一步的修改。
1)首先介绍下替换的步骤。。。这也算炒冷饭了。
如上图所示,下面就是实际操作了。
用反编译软件察看解压后的class文件来确定位置(第一步已经做过);
然后使用十六进制编辑器直接修改class文件。那么这里也就牵涉到十六进制的换算。
(直接使用windows自带的计算机就可以了,具体也不必太深人了解十六进制的换算,有兴趣的可以找cj以前写的一篇游戏修改教程(joyes的游戏论坛的精华中可以找到)后附的一段相关文章。)
在计算机中选择 察看——科学型,输入数值后点击十六进制即可。
但在class文件中我们会看到其数值会是下面这种形式:
十进制 十六进制 —— 十进制 十六进制
176 1100B0 —— 128 110080
208 1100D0 —— 160 1100A0
特别说明一下:
0-127 显示为1000-107F
128以上都是1100xx的形式
计算器算出的是最后两位,这点不用深究,记住就行。
打开winhex,打开h.class,如图操作:
搜索完后会弹出窗口显示搜索到的数量,同时在窗口上部列表显示,点击可以直接跳转到相应的位置。(这就是为啥用winhex的原因。。)
在h.class中一共搜索到8处,但只有一处后面跟着的是1100D0,从图中我们可以看到其余的1100B0后面连着的是1100B3,实际上也就是179。此处先略过,容后补述。
那么我们要做的就是替换着几个数值,当然也可以直接把光标移到需修改处后直接用键盘打上去。但当数量多时还是建议使用替换功能。
同样在搜索菜单中选择替换十六进制数值。
按确定就ok了。
但是当拖回去用模拟器或者真机试验时会发现原来的生命显示条还是看不见。怎么办呢?
2)下面我们首先要了解一下本素材中牵涉到的几个Graphics 类的绘制方法:
1>drawImage(图片,X坐标,Y坐标,方式) 。
2>setClip(X坐标,Y坐标,宽度,长度),将当前剪贴区设置为由给定坐标指定的矩形。
3>fillRect(x坐标,Y坐标,宽度,长度) 填充指定的矩形。
更多可点击参阅
接下来我们可以看看下面这张图片,可以用qq带的截图工具或者其他截图工具来大概确定位置。
如果你没有s60模拟器的话,可以用windows自带的画板画一下,熟悉了后看一眼大概就会知道位置了。
那么我们首先来试着修改一下这两个位置:
179与原长度208相差29个像素,换算到128*160的屏幕上,游戏画面的长度就应为160-29=131。
157与原宽度176相差19个像素,换算到128*160的屏幕上,生命数量的位置的x坐标应为128-19=109。同理,y坐标应为160-(208-185)=137。
其余同理。
179 1100B3——131 110083
157 11009D——109 11006D
185 1100B9——137 110089
187 1100BB——139 11008B
按照之前的步骤替换掉这些数值,然后我们来看看成果: