So I spent some time tinkering with the Junon Minigame...
Autoplay for Junon minigame (Tested in practice mode). Dont have to do any inputs to max out and keep combo going. Everything counts as "Great".
Seems for checking trigger is used in 3 instructions for each type of input (hit, tap, hold). Keeping combo used one for hit, and one shared for hold/tap.
I'm keeping the commented section in the bottom for each type so it's easier to fix if an update changes anything later on.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1337103662</ID>
<Description>"Parade Combo Always Increases"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(ComboHit,ff7rebirth_.exe,8B CE 83 E9 01 0F 84 A6) // should be unique
aobscanmodule(ComboHoldTap,ff7rebirth_.exe,83 FF 01 0F 85 86 00 00 00) // should be unique
aobscanmodule(JudgeGreatHit,ff7rebirth_.exe,8B 4F 08 83 E9 01 0F 84 34) // should be unique
aobscanmodule(JudgeGreatTap,ff7rebirth_.exe,8B 4F 24 83 E9 01) // should be unique
aobscanmodule(JudgeGreatHold,ff7rebirth_.exe,8B 4F 20 83 E9 01 0F) // should be unique
alloc(JudgeHold,$100,JudgeGreatHold)
alloc(JudgeTap,$100,JudgeGreatTap)
alloc(JudgeHit,$100,JudgeGreatHit)
alloc(ComboHitRetain,$100,ComboHit)
label(codeComboHit)
label(returnComboHit)
label(codeJudgeHit)
label(returnJudgeHit)
label(codeJudgeTap)
label(returnJudgeTap)
label(codeJudgeHold)
label(returnJudgeHold)
ComboHitRetain:
mov esi,3
codeComboHit:
mov ecx,esi
sub ecx,01
jmp returnComboHit
ComboHit:
jmp ComboHitRetain
returnComboHit:
ComboHoldTap:
cmp edi,0
JudgeHit:
mov [rdi+08],3
codeJudgeHit:
mov ecx,[rdi+08]
sub ecx,01
jmp returnJudgeHit
JudgeGreatHit:
jmp JudgeHit
nop
returnJudgeHit:
JudgeTap:
mov dword ptr [rdi+24],03
codeJudgeTap:
mov ecx,[rdi+24]
sub ecx,01
jmp returnJudgeTap
JudgeGreatTap:
jmp JudgeTap
nop
returnJudgeTap:
JudgeHold:
mov dword ptr [rdi+20],03
codeJudgeHold:
mov ecx,[rdi+20]
sub ecx,01
jmp returnJudgeHold
JudgeGreatHold:
jmp JudgeHold
nop
returnJudgeHold:
registersymbol(ComboHit)
registersymbol(ComboHoldTap)
registersymbol(JudgeGreatHit)
registersymbol(JudgeGreatTap)
registersymbol(JudgeGreatHold)
[DISABLE]
ComboHit:
db 8B CE 83 E9 01
ComboHoldTap:
db 83 FF 01
JudgeGreatHit:
db 8B 4F 08 83 E9 01
JudgeGreatTap:
db 8B 4F 24 83 E9 01
JudgeGreatHold:
db 8B 4F 20 83 E9 01
unregistersymbol(*)
dealloc(*)
{ ComboHit
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+12AE018
ff7rebirth_.exe+12ADFE8: 74 18 - je ff7rebirth_.exe+12AE002
ff7rebirth_.exe+12ADFEA: 89 51 24 - mov [rcx+24],edx
ff7rebirth_.exe+12ADFED: 48 8B 93 28 01 00 00 - mov rdx,[rbx+00000128]
ff7rebirth_.exe+12ADFF4: 48 8B 8B D0 00 00 00 - mov rcx,[rbx+000000D0]
ff7rebirth_.exe+12ADFFB: E8 00 EF FF FF - call ff7rebirth_.exe+12ACF00
ff7rebirth_.exe+12AE000: EB 16 - jmp ff7rebirth_.exe+12AE018
ff7rebirth_.exe+12AE002: 89 71 08 - mov [rcx+08],esi
ff7rebirth_.exe+12AE005: 48 8B 93 28 01 00 00 - mov rdx,[rbx+00000128]
ff7rebirth_.exe+12AE00C: 48 8B 8B D0 00 00 00 - mov rcx,[rbx+000000D0]
ff7rebirth_.exe+12AE013: E8 80 04 00 00 - call ff7rebirth_.exe+12AE498
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+12AE018: 8B CE - mov ecx,esi
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+12AE01A: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12AE01D: 0F 84 A6 00 00 00 - je ff7rebirth_.exe+12AE0C9
ff7rebirth_.exe+12AE023: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12AE026: 74 18 - je ff7rebirth_.exe+12AE040
ff7rebirth_.exe+12AE028: 83 F9 01 - cmp ecx,01
ff7rebirth_.exe+12AE02B: 74 0A - je ff7rebirth_.exe+12AE037
ff7rebirth_.exe+12AE02D: 83 FE 01 - cmp esi,01
ff7rebirth_.exe+12AE030: 75 2E - jne ff7rebirth_.exe+12AE060
ff7rebirth_.exe+12AE032: E9 B2 00 00 00 - jmp ff7rebirth_.exe+12AE0E9
ff7rebirth_.exe+12AE037: 48 8B 8B 90 00 00 00 - mov rcx,[rbx+00000090]
}
{ ComboHoldTap
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+12AC664
ff7rebirth_.exe+12AC63E: 45 33 F6 - xor r14d,r14d
ff7rebirth_.exe+12AC641: 48 8B 06 - mov rax,[rsi]
ff7rebirth_.exe+12AC644: 8B FA - mov edi,edx
ff7rebirth_.exe+12AC646: 48 8B D9 - mov rbx,rcx
ff7rebirth_.exe+12AC649: 48 85 C0 - test rax,rax
ff7rebirth_.exe+12AC64C: 0F 84 5D 01 00 00 - je ff7rebirth_.exe+12AC7AF
ff7rebirth_.exe+12AC652: 89 50 20 - mov [rax+20],edx
ff7rebirth_.exe+12AC655: 48 8B 16 - mov rdx,[rsi]
ff7rebirth_.exe+12AC658: 48 8B 89 D0 00 00 00 - mov rcx,[rcx+000000D0]
ff7rebirth_.exe+12AC65F: E8 60 01 00 00 - call ff7rebirth_.exe+12AC7C4
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+12AC664: 83 FF 01 - cmp edi,01
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+12AC667: 0F 85 86 00 00 00 - jne ff7rebirth_.exe+12AC6F3
ff7rebirth_.exe+12AC66D: 44 38 B3 24 02 00 00 - cmp [rbx+00000224],r14b
ff7rebirth_.exe+12AC674: 74 29 - je ff7rebirth_.exe+12AC69F
ff7rebirth_.exe+12AC676: 48 8B 8B B8 00 00 00 - mov rcx,[rbx+000000B8]
ff7rebirth_.exe+12AC67D: 48 85 C9 - test rcx,rcx
ff7rebirth_.exe+12AC680: 74 14 - je ff7rebirth_.exe+12AC696
ff7rebirth_.exe+12AC682: 45 33 C9 - xor r9d,r9d
ff7rebirth_.exe+12AC685: 4C 89 74 24 40 - mov [rsp+40],r14
ff7rebirth_.exe+12AC68A: C5 E8 57 D2 - vxorps xmm2,xmm2,xmm2
ff7rebirth_.exe+12AC68E: 41 8B D6 - mov edx,r14d
}
{ JudgeGreatHit
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+12AE53A
ff7rebirth_.exe+12AE517: 83 F8 01 - cmp eax,01
ff7rebirth_.exe+12AE51A: 0F 87 42 01 00 00 - ja ff7rebirth_.exe+12AE662
ff7rebirth_.exe+12AE520: 33 D2 - xor edx,edx
ff7rebirth_.exe+12AE522: 48 8B CE - mov rcx,rsi
ff7rebirth_.exe+12AE525: E8 06 C4 65 FF - call ff7rebirth_.exe+90A930
ff7rebirth_.exe+12AE52A: 83 7F 08 03 - cmp dword ptr [rdi+08],03
ff7rebirth_.exe+12AE52E: 75 0A - jne ff7rebirth_.exe+12AE53A
ff7rebirth_.exe+12AE530: 33 D2 - xor edx,edx
ff7rebirth_.exe+12AE532: 48 8B CE - mov rcx,rsi
ff7rebirth_.exe+12AE535: E8 6E 85 86 01 - call ff7rebirth_.exe+2B16AA8
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+12AE53A: 8B 4F 08 - mov ecx,[rdi+08]
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+12AE53D: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12AE540: 0F 84 34 01 00 00 - je ff7rebirth_.exe+12AE67A
ff7rebirth_.exe+12AE546: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12AE549: 0F 84 5C 01 00 00 - je ff7rebirth_.exe+12AE6AB
ff7rebirth_.exe+12AE54F: 83 F9 01 - cmp ecx,01
ff7rebirth_.exe+12AE552: 75 24 - jne ff7rebirth_.exe+12AE578
ff7rebirth_.exe+12AE554: 41 B0 02 - mov r8b,02
ff7rebirth_.exe+12AE557: 48 8D 54 24 20 - lea rdx,[rsp+20]
ff7rebirth_.exe+12AE55C: 48 8B CB - mov rcx,rbx
ff7rebirth_.exe+12AE55F: E8 64 01 00 00 - call ff7rebirth_.exe+12AE6C8
}
{ JudgeGreatTap
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+12ACF97
ff7rebirth_.exe+12ACF76: 8B 4F 24 - mov ecx,[rdi+24]
ff7rebirth_.exe+12ACF79: 48 8B 36 - mov rsi,[rsi]
ff7rebirth_.exe+12ACF7C: 8D 41 FE - lea eax,[rcx-02]
ff7rebirth_.exe+12ACF7F: 83 F8 01 - cmp eax,01
ff7rebirth_.exe+12ACF82: 0F 86 D2 00 00 00 - jbe ff7rebirth_.exe+12AD05A
ff7rebirth_.exe+12ACF88: 83 F9 01 - cmp ecx,01
ff7rebirth_.exe+12ACF8B: 75 0A - jne ff7rebirth_.exe+12ACF97
ff7rebirth_.exe+12ACF8D: 8A D1 - mov dl,cl
ff7rebirth_.exe+12ACF8F: 48 8B CE - mov rcx,rsi
ff7rebirth_.exe+12ACF92: E8 21 F5 FF FF - call ff7rebirth_.exe+12AC4B8
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+12ACF97: 8B 4F 24 - mov ecx,[rdi+24]
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+12ACF9A: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12ACF9D: 0F 84 DA 00 00 00 - je ff7rebirth_.exe+12AD07D
ff7rebirth_.exe+12ACFA3: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12ACFA6: 0F 84 0E 54 73 01 - je ff7rebirth_.exe+29E23BA
ff7rebirth_.exe+12ACFAC: 83 F9 01 - cmp ecx,01
ff7rebirth_.exe+12ACFAF: 75 24 - jne ff7rebirth_.exe+12ACFD5
ff7rebirth_.exe+12ACFB1: 41 B0 07 - mov r8b,07
ff7rebirth_.exe+12ACFB4: 48 8D 54 24 20 - lea rdx,[rsp+20]
ff7rebirth_.exe+12ACFB9: 48 8B CB - mov rcx,rbx
ff7rebirth_.exe+12ACFBC: E8 07 17 00 00 - call ff7rebirth_.exe+12AE6C8
}
{ JudgeGreatHold
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+12AC866
ff7rebirth_.exe+12AC843: 83 F8 01 - cmp eax,01
ff7rebirth_.exe+12AC846: 0F 87 0D 01 00 00 - ja ff7rebirth_.exe+12AC959
ff7rebirth_.exe+12AC84C: B2 01 - mov dl,01
ff7rebirth_.exe+12AC84E: 48 8B CE - mov rcx,rsi
ff7rebirth_.exe+12AC851: E8 DA E0 65 FF - call ff7rebirth_.exe+90A930
ff7rebirth_.exe+12AC856: 83 7F 20 03 - cmp dword ptr [rdi+20],03
ff7rebirth_.exe+12AC85A: 75 0A - jne ff7rebirth_.exe+12AC866
ff7rebirth_.exe+12AC85C: B2 01 - mov dl,01
ff7rebirth_.exe+12AC85E: 48 8B CE - mov rcx,rsi
ff7rebirth_.exe+12AC861: E8 42 A2 86 01 - call ff7rebirth_.exe+2B16AA8
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+12AC866: 8B 4F 20 - mov ecx,[rdi+20]
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+12AC869: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12AC86C: 0F 84 1C 01 00 00 - je ff7rebirth_.exe+12AC98E
ff7rebirth_.exe+12AC872: 83 E9 01 - sub ecx,01
ff7rebirth_.exe+12AC875: 0F 84 F6 00 00 00 - je ff7rebirth_.exe+12AC971
ff7rebirth_.exe+12AC87B: 83 F9 01 - cmp ecx,01
ff7rebirth_.exe+12AC87E: 75 24 - jne ff7rebirth_.exe+12AC8A4
ff7rebirth_.exe+12AC880: 41 B0 04 - mov r8b,04
ff7rebirth_.exe+12AC883: 48 8D 54 24 20 - lea rdx,[rsp+20]
ff7rebirth_.exe+12AC888: 48 8B CB - mov rcx,rbx
ff7rebirth_.exe+12AC88B: E8 38 1E 00 00 - call ff7rebirth_.exe+12AE6C8
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>