#---------- Spiral Lady, Makina with super hair ----------
AddCheat('Invincible','無敵')
Hack('09 91 40 B9 3F A1 00 71','mov w9, wzr')
AddCheat('No Damage','ダメージ受けない')
Hack('4A 01 14 4B 2A 45 00 B9','sub w10, w10, wzr')
AddCheat('One Hit Kill','ワンヒットキル')
Hack('49 01 09 4B 69 62 00 B9','sub w9, w10, w10')
AddCheat('One Hit Kill( while pressing L)','L押下中ワンヒットキル')
CodeK=GetCodeK()
CodeCave('49 01 09 4B 69 62 00 B9',(
'ldr w7, {end}-4',
'sub w9, w10, w9',
'cbz w7, .+8',
'mov w9, wzr',
'ret',
0
))
Hack(CodeK-4,1,showRestoreCode=False,useButton='l')
addr=AOB('6A 62 40 B9 1F 31 00 71')
CodeK=GetCodeK()
for rate in (2,3,4,5,10,100,1000):
SetCodeK(CodeK)
AddCheat('Damage x%d'%rate,'ダメージ%d倍'%rate)
CodeCave(addr, (
'ldr w10, [x19,#0x60]',
'ldr w7, {end}-4',
'mul w9, w9, w7',
'ret',
Value2DWord(rate)
))
AddCheat('Time 00.00.00','タイム 00.00.00')
Hack('00 29 20 1E 01 01 27 1E 80 9A 00 BD','fmov s0, wzr')
Hack('08 05 00 11 9F 22 13 29','mov w8, wzr')
AddCheat('Enemy Break Count 999(By Enemy Kill)','敵倒すと撃破数 999')
Hack('08 05 00 11 08 3C 00 B9 28 05 00 11','mov w8, #999')
AddCheat('Combo Count 999(By Enemy Kill)','敵倒すとコンボ回数 999')
Hack('28 05 00 11 88 2A 00 29','mov w8, #999')
AddCheat('Combo Time is not reduced','コンボ時間減らない')
Hack('29 05 00 71 0B 0F 00 54','subs w9, w9, wzr')
addr=AOB('60 7A 40 BD ? ? ? ? 60 82 40 F9')
CodeK=GetCodeK()
for rate in (1.5, 2.0, 2.5, 3.0, 4.0, 5.0):
SetCodeK(CodeK)
AddCheat('Movement speed x{:.1f}'.format(rate),'移動速度{:.1f}倍'.format(rate))
CodeCave(addr, (
'str s8, [sp,#-0x10]!',
'ldr s0, [x19,#0x78]',
'ldr s8, {end}-4',
'fmul s0, s0, s8',
'ldr s8, [sp],#0x10',
'ret',
Float2DWord(rate)
))
AddCheat('Moon Jump for yuzu','ムーンジャンプ(yuzu用)')
Hack('68 32 41 39 88 00 00 34','mov w8, wzr')
Hack('68 C2 41 39 88 FF FF 34','mov w8, #1')
PlayerMove=[GetQword(GetADRP(AOB('D6 ? ? F9 ? ? ? ? 1F 6C 00 71'))),0xB8,0]
b_playerHitStop = PlayerMove + [0x20] # bool
b_DamageNow = PlayerMove + [0x21] # bool
waitTime = PlayerMove + [0x24] # int
b_WallJump = PlayerMove + [0x28] # bool
SideFloorMove = PlayerMove + [0x2C] # float
i_grapCount = PlayerMove + [0x30] # int
i_grapRelease = PlayerMove + [0x34] # int
HealEffect = PlayerMove + [0x38] # GameObject
b_UpFlg = PlayerMove + [0x40] # bool
b_RightFlg = PlayerMove + [0x41] # bool
b_LeftSlope = PlayerMove + [0x42] # bool
b_RightSlope = PlayerMove + [0x43] # bool
f_LeftUnder = PlayerMove + [0x44] # float
f_RightUnder = PlayerMove + [0x48] # float
b_jumpFlg = PlayerMove + [0x4C] # bool
b_jumpHigh = PlayerMove + [0x4D] # bool
f_jumpUp = PlayerMove + [0x50] # float
f_jumpLimit = PlayerMove + [0x54] # float
DefaultLimit = PlayerMove + [0x58] # float
f_startPlus = PlayerMove + [0x5C] # float
i_jumpCount = PlayerMove + [0x60] # int
i_jumpLimit = PlayerMove + [0x64] # int
b_onSpring = PlayerMove + [0x68] # bool
WireFlg = PlayerMove + [0x69] # bool
b_LRMove = PlayerMove + [0x6A] # bool
b_beforeShot = PlayerMove + [0x6B] # bool
b_canLadder = PlayerMove + [0x6C] # bool
b_LadderUnder = PlayerMove + [0x6D] # bool
b_WireMax = PlayerMove + [0x6E] # bool
b_moreJump = PlayerMove + [0x6F] # bool
b_onGround = PlayerMove + [0x70] # bool
b_jumpWallForce = PlayerMove + [0x71] # bool
b_Flying = PlayerMove + [0x72] # bool
ClearControl = PlayerMove + [0x73] # bool
b_lookLeft = PlayerMove + [0x74] # bool
b_grapLR = PlayerMove + [0x75] # bool
f_Movex = PlayerMove + [0x78] # float
b_RideMFloor = PlayerMove + [0x7C] # bool
UpPos = PlayerMove + [0x80] # Vector2
b_wallTop = PlayerMove + [0x88] # bool
b_grapTop = PlayerMove + [0x89] # bool
b_canUpWall = PlayerMove + [0x8A] # bool
wallUpFlg = PlayerMove + [0x8B] # bool
i_wallUpTime = PlayerMove + [0x8C] # int
i_upMuteki = PlayerMove + [0x90] # int
wallThrough = PlayerMove + [0x98] # GameObject[]
b_hitWallF = PlayerMove + [0xA0] # bool
b_hitWallB = PlayerMove + [0xA1] # bool
b_headHit = PlayerMove + [0xA2] # bool
b_damaged = PlayerMove + [0xA3] # bool
b_DamageFirst = PlayerMove + [0xA4] # bool
b_DamageStop = PlayerMove + [0xA5] # bool
i_sparkCount = PlayerMove + [0xA8] # int
underChecker = PlayerMove + [0xAC] # RaycastHit2D
FloorDis = PlayerMove + [0xD0] # RaycastHit2D
body = PlayerMove + [0xF8] # GameObject
bodyAnim = PlayerMove + [0x100] # Animator
Mover = PlayerMove + [0x108] # Rigidbody2D
Hairs = PlayerMove + [0x110] # GameObject[]
bodyDamage = PlayerMove + [0x118] # GameObject
checker = PlayerMove + [0x120] # GameObject[]
ReturnCameraWork = PlayerMove + [0x128] # float
b_CantJump = PlayerMove + [0x12C] # bool
i_AuraTime = PlayerMove + [0x130] # int
b_AuraNow = PlayerMove + [0x134] # bool
i_AuraPlus = PlayerMove + [0x138] # int
b_TurnLR = PlayerMove + [0x13C] # bool
ClimbNow = PlayerMove + [0x13D] # bool
FirstHit = PlayerMove + [0x13E] # bool
GrapFirst = PlayerMove + [0x13F] # bool
AddCheat('Moon Jump','ムーンジャンプ')
PointerHack(f_jumpUp,Float2DWord(11.8), useButton='a')
#---------- METRO QUESTER ----------
AddCheat('Hp Max (Changed)','HP変動で最大')
Hack('8D 00 00 54 E0 03 13 AA ? ? ? ? ? ? ? ? 68 46 40 B9', 'nop')
AddCheat('One Hit Kill','ワンヒットキル')
CodeCave('29 01 01 0B 3F 01 08 6B 09 64 00 B9', (
'add w9, w9, w1',
'tst w1, #0x1f',
'csel w9, wzr, w9, ne',
'b {back}'
),use_BL=False)
CodeK=GetCodeK()
addr=AOB('F6 03 00 2A 80 02 40 F9 08 64 42 79 A8 00 50 36 08 E0 40 B9 68 00 00 35 ? ? ? ? 80 02 40 F9 08 5C 40 F9 A0 02 40 F9 17 A5 40 F9 08 64 42 79 A8 00 50 36 08 E0 40 B9 68 00 00 35 ? ? ? ? A0 02 40 F9 08 5C 40 F9 18 29 40 F9')
for rate in (2,3,4,5,10,100,1000,10000):
SetCodeK(CodeK)
AddCheat('Exp Rate x%d'%rate,'経験値%d倍'%rate)
CodeCave(addr, (
'ldr w22, {end}-4',
'mul w22, w0, w22',
'ret',
Value2DWord(rate)
))
AddCheat('Dont divide the Exp by the party','経験値パーティ人数で割らない')
Hack('D8 0E D7 1A', 'mov w24, w22')
AddCheat('No Exp needed to level up','レベルアップ必要経験値0')
Hack('08 21 40 B9 5F 01 00 71', 'mov w8, wzr')
AddCheat('No Material needed to level up','レベルアップ必要資材数0')
Hack('E8 03 88 1A 68 2A 01 B9', 'mov w8, wzr')
AddCheat('No level cap','レベルキャップなし')
Hack('08 71 40 39 48 01 00 34 E0 03 13 2A', 'mov w8, wzr')
Hack('08 71 40 39 08 FF FF 35 ? ? ? ? 73 ? ? F9', 'mov w8, wzr')
AddCheat('Skill AP 0','スキル必要AP 0')
Hack('09 41 40 B9 89 32 00 B9', 'mov w9, wzr')
AddCheat('Food Max','食料最大')
Hack(AOB2('08 5C 40 F9 E1 03 1F AA 00 AD 40 F9 ? ? ? ? E0 0F 00 B9',0xc), (
'ldr w1, [x0, #0x44]',
'str w1, [x0, #0x40]',
'mov w0, w1',
'ret'
))
AddCheat('Material Max','資材最大')
Hack(AOB2('08 5C 40 F9 E1 03 1F AA 00 AD 40 F9 ? ? ? ? E0 07 00 B9',0xc), (
'ldr w1, [x0, #0x4c]',
'str w1, [x0, #0x48]',
'mov w0, w1',
'ret'
))
AddCheat('DungeonKey Max','鍵最大')
Hack(AOB2('08 5C 40 F9 E1 03 1F AA 00 AD 40 F9 ? ? ? ? E0 03 00 B9',0xc), (
'ldr w1, [x0, #0x54]',
'str w1, [x0, #0x50]',
'mov w0, w1',
'ret'
))
AddCheat('Purified Fuel Max (Changed)','浄化燃料変動で最大')
Hack('8A 00 00 54 E0 03 13 AA ? ? ? ? F4 03 00 2A', 'nop')
Hack('8D 00 00 54 E0 03 13 AA ? ? ? ? 60 12 00 B9', 'nop')
AddCheat('Medicine Max (Changed)','薬変動で最大')
Hack(AOB2(AOB3('1F 64 00 71 0A 33 00 54','01 00 15 0B'),0xc), (
'ldr w1, [x0, #0x2c]',
'str w1, [x0, #0x18]',
'ret'
))
AddCheat('Bullet Max (Changed)','弾薬変動で最大')
Hack(AOB2(AOB3('1F 64 00 71 AA 0D 00 54','01 00 15 0B'),0xc), (
'ldr w1, [x0, #0x30]',
'str w1, [x0, #0x1c]',
'ret'
))
AddCheat('Explosive Max (Changed)','爆薬変動で最大')
Hack(AOB2(AOB3('1F 64 00 71 0A 23 00 54','01 00 15 0B'),0xc), (
'ldr w1, [x0, #0x34]',
'str w1, [x0, #0x20]',
'ret'
))
AddCheat('Battery Max (Changed)','電池変動で最大')
Hack(AOB2(AOB3('1F 64 00 71 6A 76 00 54','01 00 15 0B'),0xc), (
'ldr w1, [x0, #0x38]',
'str w1, [x0, #0x24]',
'ret'
))
AddCheat('Gadget Max (Changed)','小道具変動で最大')
Hack(AOB3(AOB2(AOB3('1F 64 00 71 0A 23 00 54','01 00 15 0B'),0xc),'01 28 00 B9 C0 03 5F D6'), (
'ldr w1, [x0, #0x3c]',
'str w1, [x0, #0x28]',
'ret'
))
AddCheat('Drop Item Rarity Selection(while pressing L Rare R UnCommon LR Common)','ドロップアイテムレア度選択(L Rare R UnCommon LR Common)')
CodeK=RegCodeK()
CodeCave('08 69 76 B8 1F 00 08 6B', (
'ldr w8, [x8,x22]',
'ldr w7, {end}',
'cbz w7, .+32',
'mov w8, #200',
'tbnz w7, #0, .+24',
'mov x22, #0x24',
'mov x21, #0x28',
'tbnz w7, #1, .+12',
'mov x22, #0x28',
'mov x21, #0x30',
'ret'
))
Hack(CodeK,0)
Hack(CodeK,1,useButton='l',showRestoreCode=False)
Hack(CodeK,2,useButton='r',showRestoreCode=False)
Hack(CodeK,4,useButton=('l','r'),showRestoreCode=False)
AddCheat('No reduction in modification material item','改造素材減らない')
Hack(AOB('09 D5 00 B9 60 42 40 B9')+8, 'nop')
AddCheat('No need for modification material item','改造素材アイテム要らない')
Hack('A0 01 00 54 C8 03 80 52', 'nop')
AddCheat('No need for modification material','改造資材要らない')
Hack('C8 03 80 52 68 46 00 B9', 'mov w8, wzr')
Hack('49 0B 80 52 69 46 00 B9', 'mov w9, wzr')
Hack('C8 21 80 52', 'mov w8, wzr')
AddCheat('Modification would be the modification limit','改造すると改造上限になる')
Hack('29 05 00 11 09 D5 00 B9', 'mov w9, #3')
AddCheat('Through Wall while holding down B','B押下中壁抜け移動')
CodeK=RegCodeK()
CodeCave('1F 04 00 71 AB 00 00 54 23 03 40 F9', (
'ldr w7, {end}',
'cmp w7, wzr',
'csel w0, wzr, w0, ne',
'cmp w0, #1',
'ret'
))
Hack(CodeK,1,useButton='b')
AddCheat('No Encount And Enemy Immobility(while holding down B Encount)','ノーエンカウント&敵不動(B押下中エンカウント)')
CodeK=RegCodeK()
CodeCave('F8 03 00 AA 40 03 40 F9 08 64 42 79 D8 01 00 B4', (
'ldr w7, {end}',
'cmp w7, wzr',
'csel x24, x0, xzr, ne',
'ret'
))
Hack(CodeK,1,useButton='b')
Hack('08 61 44 39 48 FD FF 35','mov w8, #1')
AddCheat('Rader avaiable','レーダー使用可能')
addr=AOB('AB F7 FF 54 F5 03 1F AA 68 02 40 F9 E1 02 40 F9 09 55 42 79 69 01 00 B4 0B 59 40 F9 EA 03 1F AA EC 03 0B AA 8D 01 40 F9 BF 01 01 EB 40 05 00 54')
Hack(SearchPrevASM(addr, 'MOV', 'W20', 'W0'),'mov w20, #1')
Hack(addr,'nop')
AddCheat('Map Full Open(When use radar)','レーダー使用するとマップ全開')
Hack('15 0D 00 51 08 0D 00 11' ,('sub w21, w8, #99','add w8, w8, #99'))
Hack('29 0D 00 11 BF 02 09 6B', 'add w9, w9, #99')
Hack('19 0D 00 51' ,('sub w25, w8, #99','add w9, w8, #99'))
Hack('09 0D 00 11 3F 03 09 6B 2C FE FF 54','add w9, w8, #99')
Hack('09 0D 00 11 3F 03 09 6B 8C FB FF 54','add w9, w8, #99')