Site icon 时鹏亮的Blog

Switch 金手指制作教程一:给初学者寻找 登月跳 Moonjump

请知悉:本文最近一次更新为 3年 前,文中内容可能已经过时。

以下内容完整转载自:Eiffel2018 原创发布的:给初学者寻找 登月跳 Moonjump 金手指教程

前言:

英文版原文链接:https://gbatemp.net/threads/finding-moonjump-tutorial-for-beginners.608977/

以下将以洛克人7 这经典动作游戏作为例子,简单介绍 月亮跳跃 Moonjump 的金手指开发过程

20180522 [洛克人 遗产合集2] Mega Man Legacy Collection 2 [0100842008EC4000] (US中文) 动作,过关

配合工具:https://github.com/tomvita/EdiZon-SE/releases

EdizonSE内建自动升级功能,建议大家保持最新版本。

在短短一年半期间,经过作者 TomSwitch 的努力,EdizonSE 已更新了很多很多个版本,添加了很多很多的功能,成为了最好用的金手指开发工具,以后有机会再为大家一一介绍。


基本概念:

一般来说,针对角色跳跃相关的金手指可分为三类:

前两种是修改程序,破解了编码,就可很容易改到。

最后一种是利用 金手指程序,例如 EdizonSE 把内存锁定。

本文介绍的就是最后这个 MoonJump 登月跳跃。

它的好处是 制作简单,使用起来也很流畅,开发者可以很轻易的改变上升速度,配合不同游戏,微调跳跃效果,达到自然流畅。

虽然游戏开发员制作 跳跃 时,可能有多种不同的编程手法,但比较普及的是一种物理公式固定加速率(地心吸力 -9.81)使速度从正数减小到负数

也有可能是 相反的 地心吸力 9.81,速度从负数增加到正数

当玩家按下跳跃按钮时,速度变量将被设置为一个较大的初始值,例如 +2000,(我看过有些用到七位数,相当大)

并且操作的角色将开始向上跳跃,然后,这个速度变量不断减少,

直到达到速度变量(或者用户中途松开跳转键的情况时),

角色的高度便达到最高点,角色的移动方向开始变为向下。

不过这个速度变量到了0之后,即使变成了负数仍会继续减少,直到角色接触地面为止。

速度变量 0 就是一个 turning point 转折点,角色跳跃时的最高点

我们能做的就是:

角色在跳起上升时,找出一个正数值

然后当角色下降时,找出一个负数值

找出了这个 速度变量 的内存位置,便可以锁定它为正数,使角色不断上升

还有一点要补充:

这个 速度变量 的内存位置 的形态 常用两种,

一种是 32位元的有向整数,另一种是 32位元的浮点数

本文用前者作为简单介绍,配合不同游戏,

很多时需要改变查找形态,

或是正负数反转


具体做法:

首先,为了方便判定现在速度变量是正数还是负数,

我必须要把游戏添加冻结暂停的功能。

新版本的 EdizonSE 已提供了,可以很方便的自动加插两个金手指到游戏中,

但我会再修改一下,改变按键,使它更好操作,

这是冻结游戏的代码,所有游戏适用 (只限大气层,SXOS的金手指没有这功能的)

[Freeze Game (L)]

80000040 FF000000 20000000

[Resume Game (R)]

80000080 FF100000 20000000


现在正式开始了,当角色跳起之后下降到半空中时,按L暂停游戏

由于角色正在下降中途,我预计速度的值是在 -10000 和 0 之间,

但我不打算使用 -1,0,1 这些值,因为内存中有太多这样的值,如果略过它可以使搜找时间大大减少。

所以,我使用 [A..B] 范围搜索(输入S32形态)从 -10000 到 -2

得出结果,不会得到太多候选值


进入第二轮插索,先回到游戏中,准备另一个跳跃。

当按下跳跃后,立即冻结游戏

然后退到EdizonSE ,继续用正数范围搜索,这次我用了 2 .. 10000

太好了,竟然只得 1 个侯选结果!


现在开始测试一下这个侯选值是否正确

把游标移到侯选值上面,使它变成浅蓝色,然后按 X 锁定它

然后回到游戏,再尝试跳跃

不错,跟预期一样,角色起飞了。


再一次退到 EdizonSE 按 + 并给这 速度变量 一个名字,就叫它 Moonjump (登月跳跃)

地址便可添加到书签页。 我们可以按 L 来检查它。

现在,再按一下 ZL+A,便能够自动添加新的金手指,

然后,指到这个新金手指上,按 R3(即是按压右摇杆)为其添加一个激活按钮,我使用X,(X为登月跳跃,B为正常跳跃)

也就是说,当玩家按下X,金手指才会激活(锁定内存),放手就可以解除锁定。

最后,按 ZL+L3(即是按住ZL再压下左摇杆),使金手指代码自动写入作弊文件。(这真够方便,连一句代码也不用亲自书写)

这就完成了,可以把文件用FTP抄到电脑打包,然后分享到 91


希望大家学识以后,多多尝试及分享,如果想学习制作金手指,绝对不用找师父!

只有不断做各色各样的金手指,才能知道怎样去做的.

只需要帮别人的金手指升级到最新版本,你就可以学到了。

一切方法,是靠人模索,想像出来的。

假如没有想像力和恒心努力,你有师父也不可能大成。


特别鸣谢

Eiffel2018 原创发布:给初学者寻找 登月跳 Moonjump 金手指教程


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《Switch 金手指制作教程一:给初学者寻找 登月跳 Moonjump》相关的博文:

Exit mobile version