View Full Version : Problem with Registry in ciu 2035 or above
gatosky1620
30-05-2017, 18:21
Im creating my own Assassin creed 3 v1.06 conversion, but i have this problem when add the registry.iss file.
http://i.imgur.com/zkKLJt2.png
Yes, same error i have run into weeks above.
I don't have any solution for that.
I have compared with AC Rogue registry.iss and the only difference is the game name.
So it has something to do with the name of the game - strange.
http://fileforums.com/showpost.php?p=457784&postcount=1258
Hi Mate
pull the reg keys and layout from this script i gave them to revo a long time ago.
And those where working fine.
http://fileforums.com/showthread.php?t=93761
peterf1999
30-05-2017, 23:12
[Registry]
Root: HKLM; SubKey: SOFTWARE\Ubisoft\{code:GetAppName}\1.01; Flags: uninsdeletekeyifempty
[CustomMessages]
en.AppName=Assassin%1s Creed(R) III
[Code]
function GetAppName(Param: string): string;
begin
Result:=FmtMessage(ExpandConstant('{cm:AppName}'),[chr(39)]) ;
end;
Cheers ;)
Have not tested yet, but this should work?
#define AC3Registry
...
#ifdef AC3Registry
function GetAppName(Param: string): string;
begin
Result:=FmtMessage(ExpandConstant('{cm:AppName}'),[chr(39)]) ;
end;
#else
function GetAppName(Default:String):String;
begin
if not (GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt')) = '') and (GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, '') = '') then
Result := GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt'))
else
Result:=GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, GetOrigAppName(''))
end;
#endif
Will test it further on weekend. But i am sure i have forgot something important.
And a question: Can i use #ifdef for this on [CustomMessages] too? If yes, it is neccessary at all?
Edit: Ok, it seems to work. I have just switched #define to ON. But as i said, will test it with registry.iss on weekend.
Edit 2: Here is the full code i am using for the fast test
#define AC3Registry
[CustomMessages]
#ifdef AC3Registry
eng.AppName=Assassin%1s Creed(R) III
#endif
#ifdef AC3Registry
function GetAppName(Param: string): string;
begin
Result:=FmtMessage(ExpandConstant('{cm:AppName}'),[chr(39)]) ;
end;
#else
function GetAppName(Default:String):String;
begin
if not (GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt')) = '') and (GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, '') = '') then
Result := GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt'))
else
Result:=GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, GetOrigAppName(''))
end;
#endif
gatosky1620
31-05-2017, 19:16
but the exactly problem is that i want use the 2040 version, so anyone have a language changer only for AC3 1.06
It's not possible without the source code.
gatosky1620
01-06-2017, 16:39
It's not possible without the source code.
so how somebody knows how create a bat file to add the reg entries with the folder location, the system language, and the windows architecture without edit first the bat file?
Im creating my own Assassin creed 3 v1.06 conversion, but i have this problem when add the registry.iss file.
http://i.imgur.com/zkKLJt2.png
Possible Solution. Work for me...
insert this line in script
#define FileLine StringChange(FileLine, "'", "''")
in this code part...
#sub DeleteRegistryValue
#if Pos("Root:",FileLine) > 0 & Pos("SubKey:",FileLine) > 0 & Pos("ValueName:",FileLine) > 0
#define FileLine StringChange(FileLine, ": ", ":")
#define FileLine StringChange(FileLine, "; ", ";")
#define FileLine StringChange(FileLine, """", "")
#define FileLine StringChange(FileLine, "'", "''")
#define RootKey Copy(FileLine, Pos("Root:",FileLine) + 5, Len(FileLine))
This function contain error, and if insert a key and not value not remove from registry. In Registry.iss from Arsassin's Creed 3 the first eight lines not remove from windows registry on uninstall game (Firsts Lines: Assassin's Creed(R) III not contain value.. only root and key).
To fix error undelet keys from registry replace original "sub DeleteRegistryValue" for this part in script
#sub DeleteRegistryValue
#if Pos("Root:", FileLine) > 0 & Pos("SubKey:", FileLine) > 0
#define FileLine StringChange(FileLine, ": ", ":")
#define FileLine StringChange(FileLine, "; ", ";")
#define FileLine StringChange(FileLine, """", "")
#define FileLine StringChange(FileLine, "'", "''")
#define RootKey Copy(FileLine, Pos("Root:",FileLine) + 5, Len(FileLine))
#define RootKey Copy(RootKey, 0, Pos(";",RootKey)-1)
#define SubKeyName Copy(FileLine, Pos("SubKey:",FileLine) + 7, Len(FileLine))
#define SubKeyName Copy(SubKeyName, 0, Pos(";",SubKeyName)-1)
#if Pos("ValueName:", FileLine) > 0
#define ValueName Copy(FileLine, Pos("ValueName:",FileLine) + 10, Len(FileLine))
#define ValueName Copy(ValueName, 0, Pos(";",ValueName)-1)
#else
#define ValueName ""
#endif
if not (not IsWin64 and (Pos('64', '{#RootKey}') > 0)) then begin
RegDeleteValue({#RootKey}, '{#SubKeyName}', '{#ValueName}');
CurrentRegKey := '{#SubKeyName}' + '\' + '{#ValueName}';
repeat
CurrentRegKey := ExtractFilePath(CurrentRegKey);
SetLength(CurrentRegKey, Length(CurrentRegKey) - 1);
RegDeleteKeyIfEmpty({#RootKey},CurrentRegKey);
until RegKeyExists({#RootKey},CurrentRegKey);
end;
#endif
#endsub
If some knows how Yener/Bamse encrypted the 2040 script i am happy to help make the changes for those who have the 2040 beta 5 script.but i will not release the actually script.
but it need to be encrypted like the last release by Bamse.
Didn't BAMsE gave you the source compiler?
no he did not mate i just have the 2.0.4.0 beta5 iss file so i could add different compressions.i am not good with inno.so if someone can help make compiler and it must not be able to be unpacked with inno unpacker.
I would say ask altef_4, i guess it's his source code (compiler) anyway.
And he is the only person around here i know of knowing such things about protection.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.