Cielos wrote: ↑Mon Jul 01, 2019 2:34 pm
makankossapo wrote: ↑Sun Jun 30, 2019 2:01 pm
I am having trouble with the custom voice function.
Leon A
Game version- latest(steam version, I think it's V2)
Table version- Latest (19+2)
Cheat engine version: tried with both 6.8.2 and 6.8.3
Step 1: Used a mod to replace Leon with Ada.
Step 2: Used cheat table to set Ada's costume(worked)
Step 3: Used cheat table to set voice to Ada's. (partially working)
Problem:
The foot step sound are replaced to Ada's footsteps, but the grunts, etc are silent. The only time Custom Voice worked perfectly was when Real Ada was near my Custom Ada.
PS: I tried replacing with Claire's voice, still the same results, Footsteps sound gets replaced but the grunts etc are silent.
it did work when I was playing.
replacing voice with Claire never work on Leon campaign for me, as mentioned on the first post.
but using Ada's voice on Leon (changed to Ada with mod) in Leon campaign works, at least I remember the character was breathing like Ada when running.
maybe the game's need one more id read on loading to ensure it loads the voice file of the customised id as well...
////////////////////////
kennean wrote: ↑Fri Jun 21, 2019 12:05 am
[...]
Actually I don't know it either!!! Perhaps someone who used the codes before could tell... I believe the stance is changed, so when you have a character that's taller or smaller, they will shot from the correct height, but I'm guessing here... And the custom loadout, well, didn't find a weapon that was suppose to be different... Only when I started a game on Leon's route, changing the settings to Ada, then the gun that appeared was the one she uses...
no, stance is not about the aim height. the aim height is manipulated by another script.
for example:
Leon stance is holding the gun upwards when a handgun is equipped.
Claire's is holding the handguns below the waist with both hands.
Ada stance is both hands are NOT raised when you're equipped with handgun.
so, when playing with Claire in Noir costume, you can change to Ada stance and you'd look more relax that suit the costume more.
load-out:
it's about the APPEARANCE of the loadout.
e.g., for Claire, handguns would be on the right waist when not holstered, shotgun/granade launcher would be on the back. while, for Ada, her special handgun would appear on the left chest holster, and no big guns would appear on her back when holstered.
IF, for example, you change Claire to Ada, but didn't set the loadout to ada, the holstered handguns would appear on her foot, because the model doesn't have the placeholder for it and the game don't know what to do and place it at 0,0,0 of the character instead.
so, to test if you ported the script correctly, set Claire to Ada, set stance and loadout to Ada. load a Claire savegame, see if she appears as Ada, stand/walk/run with both hands die when handgun is equipped, and no handgun appear on her food when you swtich to other weapons from a handgun.
note that, even with proper "loadout" ported, starting a new leon game with loadout changed would results in inf. loading screen. just start a new game first, that you can load the auto-save with loadout changed.
also, improper porting of the script could soft lock the game progress or even crash on some scenario.
e.g., when you first arrive at the station and check the computer, a cut-scene should begin. if something went wrong with the script, you'd get a crash.
and/or some world object (door in orphanage, cabinet in the sewer, badge-unlock-chest in the secret exit below the station..) may appear or disappear unexpectedly, as the game thought you're a different character when it's trying to load the object when you're getting near. if the game auto-save at this point, re-loading the auto-save won't fix it, and you have to re-load an older save.
so, if none of the cases happened when you test it, then the script-porting should be ok.
EDIT:
check PM~
Again, thanks for your help and your explanation Cielos! I've tested with your settings, and I saw what you meant... Good news is I think I'm almost "perfecting" the ported script... Before, I could see the weapon below Claire's (Ada's) feet, and also the ammo clips and grenades at her hip... After some adjustments, the clips are gone, the only weapon that appears at her feet is the SL60 (the one that Claire starts the game with), no weapons on the back when not in use, and no crash watching the cutscene at the PC at the start of the 2nd route... But, if I load a save further on the game, in which the SL60 was on the storage chest, when I equip it and then holster, it no longer appears beneath her feet!
These are the AOB's that I found on my end:
notCharLoadoutCallerAOB:
Code: Select all
re2.exe+48AD57 - 48 8B CB - mov rcx,rbx
re2.exe+48AD5A - 48 85 FF - test rdi,rdi
re2.exe+48AD5D - 75 1D - jne notCharLoadoutCallerAOB
re2.exe+48AD5F - 45 33 C0 - xor r8d,r8d
re2.exe+48AD62 - 8D 57 38 - lea edx,[rdi+38]
re2.exe+48AD65 - E8 667D9401 - call re2.exe+1DD2AD0
re2.exe+48AD6A - 33 C0 - xor eax,eax
re2.exe+48AD6C - 48 8B 5C 24 30 - mov rbx,[rsp+30]
re2.exe+48AD71 - 48 8B 74 24 38 - mov rsi,[rsp+38]
re2.exe+48AD76 - 48 83 C4 20 - add rsp,20 { 32 }
re2.exe+48AD7A - 5F - pop rdi
re2.exe+48AD7B - C3 - ret
notCharLoadoutCallerAOB- 48 8B D7 - mov rdx,rdi
re2.exe+48AD7F - E8 3C460500 - call re2.exe+4DF3C0
re2.exe+48AD84 - 48 8B 4B 50 - mov rcx,[rbx+50]
re2.exe+48AD88 - 48 8B 5C 24 30 - mov rbx,[rsp+30]
re2.exe+48AD8D - 48 39 71 18 - cmp [rcx+18],rsi
re2.exe+48AD91 - 0F45 C6 - cmovne eax,esi
re2.exe+48AD94 - 48 8B 74 24 38 - mov rsi,[rsp+38]
re2.exe+48AD99 - 48 83 C4 20 - add rsp,20 { 32 }
re2.exe+48AD9D - 5F - pop rdi
re2.exe+48AD9E - C3 - ret
re2.exe+48AD9F - CC - int 3
re2.exe+48ADA0 - 40 53 - push rbx
re2.exe+48ADA2 - 57 - push rdi
re2.exe+48ADA3 - 41 54 - push r12
This one is tricky... Couldn't find anything more similar with your AOB, with the same call... And I think I'm injecting the code at the wrong place...
charIDChkForWorldObjectLoadoutCallerAOB:
Code: Select all
re2.exe+4D54FE - 48 89 7C 24 38 - mov [rsp+38],rdi
re2.exe+4D5503 - 48 8B CB - mov rcx,rbx
re2.exe+4D5506 - 33 FF - xor edi,edi
re2.exe+4D5508 - 48 85 ED - test rbp,rbp
re2.exe+4D550B - 75 0D - jne charIDChkForWorldObjectLoadoutCallerAOB
re2.exe+4D550D - 45 33 C0 - xor r8d,r8d
re2.exe+4D5510 - 8D 57 38 - lea edx,[rdi+38]
re2.exe+4D5513 - E8 B8D58F01 - call re2.exe+1DD2AD0
re2.exe+4D5518 - EB 3E - jmp re2.exe+4D5558
charIDChkForWorldObjectLoadoutCallerAOB- 48 8B D5 - mov rdx,rbp
re2.exe+4D551D - E8 9E9E0000 - call re2.exe+4DF3C0
re2.exe+4D5522 - 48 8B 4B 50 - mov rcx,[rbx+50]
re2.exe+4D5526 - 48 39 79 18 - cmp [rcx+18],rdi
re2.exe+4D552A - 75 2C - jne re2.exe+4D5558
re2.exe+4D552C - 3D E8030000 - cmp eax,000003E8 { 1000 }
re2.exe+4D5531 - 75 09 - jne re2.exe+4D553C
re2.exe+4D5533 - 48 8B BE 10010000 - mov rdi,[rsi+00000110]
re2.exe+4D553A - EB 0E - jmp re2.exe+4D554A
re2.exe+4D553C - 3D B80B0000 - cmp eax,00000BB8 { 3000 }
re2.exe+4D5541 - 75 07 - jne re2.exe+4D554A
re2.exe+4D5543 - 48 8B BE 18010000 - mov rdi,[rsi+00000118]
re2.exe+4D554A - 4C 8B C7 - mov r8,rdi
re2.exe+4D554D - 48 8B D6 - mov rdx,rsi
re2.exe+4D5550 - 48 8B CB - mov rcx,rbx
re2.exe+4D5553 - E8 B8C87101 - call re2.exe+1BF1E10
re2.exe+4D5558 - 48 8B 7C 24 38 - mov rdi,[rsp+38]
This one is pretty similar with yours, so I think there's no problem here...
charIDReadForLoadoutOnLoadAOB:
Code: Select all
re2.exe+4DF3BF - CC - int 3
re2.exe+4DF3C0 - 40 57 - push rdi
charIDReadForLoadoutOnLoadAOB- 48 83 EC 20 - sub rsp,20 { 32 }
re2.exe+4DF3C6 - 48 8B 41 50 - mov rax,[rcx+50]
re2.exe+4DF3CA - 48 8B F9 - mov rdi,rcx
re2.exe+4DF3CD - 48 83 78 18 00 - cmp qword ptr [rax+18],00 { 0 }
re2.exe+4DF3D2 - 74 08 - je re2.exe+4DF3DC
re2.exe+4DF3D4 - 33 C0 - xor eax,eax
re2.exe+4DF3D6 - 48 83 C4 20 - add rsp,20 { 32 }
re2.exe+4DF3DA - 5F - pop rdi
re2.exe+4DF3DB - C3 - ret
re2.exe+4DF3DC - 48 89 5C 24 38 - mov [rsp+38],rbx
re2.exe+4DF3E1 - E9 1A0CA6FF - jmp 7FF6BBD30000
re2.exe+4DF3E6 - 90 - nop
re2.exe+4DF3E7 - 48 8B 15 0A16B506 - mov rdx,[re2.exe+70309F8] { (7FF6C0F2DEC0) }
re2.exe+4DF3EE - E8 6D1A8F01 - call re2.exe+1DD0E60
re2.exe+4DF3F3 - 48 8B D0 - mov rdx,rax
re2.exe+4DF3F6 - 48 8B CF - mov rcx,rdi
re2.exe+4DF3F9 - 89 58 10 - mov [rax+10],ebx
re2.exe+4DF3FC - E8 2FD99001 - call re2.exe+1DECD30
re2.exe+4DF401 - 48 8B 4F 50 - mov rcx,[rdi+50]
re2.exe+4DF405 - 33 DB - xor ebx,ebx
This one, as I said before, is almost exactly like yours... The exception is 33 C0 for the xor... But, there's another address that the assembly is the same as this one, with the difference being at the
re2.exe+4DF3E7 - 48 8B 15 0A16B506 - mov rdx,[re2.exe+70309F8] { (7FF6C0F2DEC0) }, because it's the same same opcode, but different memory regions points leads to different assembly... So, I'm using the one that gets called by both AOB's, like you told me to...
And this is the result of the jmp in the
charIDReadForLoadoutOnLoadAOB:
Code: Select all
7FF6BBD30000 - 45 33 C0 - xor r8d,r8d
7FF6BBD30003 - 8B 5A 54 - mov ebx,[rdx+54]
7FF6BBD30006 - 51 - push rcx
7FF6BBD30007 - 48 B9 7CAD27BCF67F0000 - mov rcx,notCharLoadoutCallerAOB { (-388527288) }
7FF6BBD30011 - 48 8D 49 0A - lea rcx,[rcx+0A]
7FF6BBD30015 - 48 39 4C 24 30 - cmp [rsp+30],rcx
7FF6BBD3001A - 74 2B - je 7FF6BBD30047
7FF6BBD3001C - 90 - nop
7FF6BBD3001D - 90 - nop
7FF6BBD3001E - 90 - nop
7FF6BBD3001F - 90 - nop
7FF6BBD30020 - 48 B9 1A552CBCF67F0000 - mov rcx,charIDChkForWorldObjectLoadoutCallerAOB { (72) }
7FF6BBD3002A - 48 8D 49 08 - lea rcx,[rcx+08]
7FF6BBD3002E - 48 39 4C 24 30 - cmp [rsp+30],rcx
7FF6BBD30033 - 74 12 - je 7FF6BBD30047
7FF6BBD30035 - 90 - nop
7FF6BBD30036 - 90 - nop
7FF6BBD30037 - 90 - nop
7FF6BBD30038 - 90 - nop
7FF6BBD30039 - EB 1B - jmp 7FF6BBD30056
7FF6BBD3003B - 90 - nop
7FF6BBD3003C - 90 - nop
7FF6BBD3003D - 90 - nop
7FF6BBD3003E - 90 - nop
7FF6BBD3003F - 90 - nop
7FF6BBD30040 - 90 - nop
7FF6BBD30041 - 90 - nop
7FF6BBD30042 - 90 - nop
7FF6BBD30043 - 90 - nop
7FF6BBD30044 - 90 - nop
7FF6BBD30045 - 90 - nop
7FF6BBD30046 - 90 - nop
7FF6BBD30047 - 59 - pop rcx
7FF6BBD30048 - EB 77 - jmp 7FF6BBD300C1
7FF6BBD3004A - 90 - nop
7FF6BBD3004B - 90 - nop
7FF6BBD3004C - 90 - nop
7FF6BBD3004D - 90 - nop
7FF6BBD3004E - 90 - nop
7FF6BBD3004F - 90 - nop
7FF6BBD30050 - 90 - nop
7FF6BBD30051 - 90 - nop
7FF6BBD30052 - 90 - nop
7FF6BBD30053 - 90 - nop
7FF6BBD30054 - 90 - nop
7FF6BBD30055 - 90 - nop
7FF6BBD30056 - 48 B9 3F00D8BBF67F0000 - mov rcx,bStart { (10) }
7FF6BBD30060 - 83 39 00 - cmp dword ptr [rcx],00 { 0 }
7FF6BBD30063 - 74 04 - je 7FF6BBD30069
7FF6BBD30065 - 90 - nop
7FF6BBD30066 - 90 - nop
7FF6BBD30067 - 90 - nop
7FF6BBD30068 - 90 - nop
7FF6BBD30069 - 48 B9 4700D8BBF67F0000 - mov rcx,pCurrentCharacter { (208) }
7FF6BBD30073 - 48 39 11 - cmp [rcx],rdx
7FF6BBD30076 - 75 28 - jne 7FF6BBD300A0
7FF6BBD30078 - 90 - nop
7FF6BBD30079 - 90 - nop
7FF6BBD3007A - 90 - nop
7FF6BBD3007B - 90 - nop
7FF6BBD3007C - 48 B9 CF00D3BBF67F0000 - mov rcx,dCustomLoadout { (2) }
7FF6BBD30086 - 8B 09 - mov ecx,[rcx]
7FF6BBD30088 - 85 C9 - test ecx,ecx
7FF6BBD3008A - 0F4D D9 - cmovge ebx,ecx
7FF6BBD3008D - 48 B9 3F00D8BBF67F0000 - mov rcx,bStart { (10) }
7FF6BBD30097 - 44 8B 01 - mov r8d,[rcx]
7FF6BBD3009A - 44 8B 01 - mov r8d,[rcx]
7FF6BBD3009D - 45 31 C0 - xor r8d,r8d
7FF6BBD300A0 - 48 B9 3F00D8BBF67F0000 - mov rcx,bStart { (10) }
7FF6BBD300AA - FF 01 - inc [rcx]
7FF6BBD300AC - 59 - pop rcx
7FF6BBD300AD - EB 12 - jmp 7FF6BBD300C1
7FF6BBD300AF - 90 - nop
7FF6BBD300B0 - 90 - nop
7FF6BBD300B1 - 90 - nop
7FF6BBD300B2 - 90 - nop
7FF6BBD300B3 - 90 - nop
7FF6BBD300B4 - 90 - nop
7FF6BBD300B5 - 90 - nop
7FF6BBD300B6 - 90 - nop
7FF6BBD300B7 - 90 - nop
7FF6BBD300B8 - 90 - nop
7FF6BBD300B9 - 90 - nop
7FF6BBD300BA - 90 - nop
originalcode25_charIDReadForLoadoutOnLoadAOB- 45 33 C0 - xor r8d,r8d
7FF6BBD300BE - 8B 5A 54 - mov ebx,[rdx+54]
7FF6BBD300C1 - E9 21F35900 - jmp re2.exe+4DF3E7
Can you make something with this? Of course, in real time it would be better but I hope that with these opcodes you can help me get this script right! About the PM, I think I've managed to port what you've sent, gotta test some more, and, if I can get in touch with the creator, I'll post it for everyone...
Thanks again!
IneedAPervertedMrs wrote: ↑Mon Jul 01, 2019 2:21 pm
It looks like the "denuvo-free" version is just a pirate copy. Can we get support for the paid version please? People who pay for the game are paying your free pirated enjoyment of the game so be a bro and hook us up please.
Not quite, because this .exe came directly from the Steam, with an update, which I can't remeber when they released (Google is your friend!). As it was a mistake they corrected pushing another update with another .exe that contained the same denuvo. The game got cracked way before the denuvo free .exe was "leaked"... I think you can use the denuvo free .exe even if you bought the game... And why would you do this? Because with this .exe you get lower loading times, better framerates etc, which you can prove yourself searching gaming forums...
And, as our friend said:
makankossapo wrote: ↑Mon Jul 01, 2019 4:09 pm
IneedAPervertedMrs wrote: ↑Mon Jul 01, 2019 2:21 pm
It looks like the "denuvo-free" version is just a pirate copy. Can we get support for the paid version please? People who pay for the game are paying your free pirated enjoyment of the game so be a bro and hook us up please.
The Cheat Table provided by OP is for the steam version of the game.
Only the cheat tables provided by user kennean in this thread are for denuvo free/pirated version of the game.
You can download the cheat table from page 1 and it will work.
99% features working for me, other than voice changer, which seems to have some kind of bug.
The tables that Cielos made also worked on the cracked/pirated versions, since they were released. So read a little before saying such things...