marcussacana / stringreloads Goto Github PK
View Code? Open in Web Editor NEWA tool to inject strings into a game using low level code
License: The Unlicense
A tool to inject strings into a game using low level code
License: The Unlicense
The test game is Golden Marriage -Jewel Days-
I tried using the auto-install feature of x86 SRLwrapper, but it just crashed on black screen at startup
.
The game uses the adv engine and the is original
I move both, SRL.ini and SRLWrapper.dll to the game folder (where .exe is), then i rename SRLWrapper.dll to d3d9.dll, open the SRL.ini and set the AutoInstall=true
First of all, thank you for making a good tool.
I wanted to change the font of the translated game using this tool, and I was able to change it eventually.
But there is a little problem.
Most of the time, there is no problem, but there is a bug in which the game stops in very few sections.
This bug varies from person to person, and the interval that occurs is not constant.
But for some people, it happens unconditionally in certain sections.
I tried many things, and after tracking the cause, I found out that the dll file (library file) I attached to change the font was the cause.
In areas where bugs occur unconditionally,
If you didn't use the wrapping function, you could see that there was no bug.
We received the latest version of the 32-bit SRLWrapper file released here, and we modified the SRLWrapper.dll file to winmm.dll.
I wanted to create a log file for you, but when I changed the settings to create a log file,
the game would freeze as soon as I started it, so I couldn't create a log file.
In this game, if you don't change the font, the string is truncated, so you must be able to change the font and font size.
And since the translation work has already been completed, I hope the bug will be fixed.
[link removed]
I think it's a difficult problem to predict just by the explanation, so I'm attaching the entire package. The font is in a separate font folder, so you can install it.
We may have to make a boring check for the test, but I attached a save file for the section where there are many errors.(Last file)
I ask for your help me. Thank you.
I tested with 2 games and it shows this:
No Supported Engine Detected, Auto SRL Installer Disabled
I tested:
Koi x Shin Ai Kanojo
Anata ni Koi Suru Ren'ai Recette
Koi x Shin Ai Kanojo also shows:
Import Hook Failed: user32.dll => CreateWindowExW
Import Hook Failed: user32.dll => SetWindowPos
Anata ni Koi Suru Ren'ai Recette:
Import Hook Failed: user32.dll => CreateWindowExW
Am I doing something wrong?
SRL.ini's config is the same as The Witch's Love Diary.
I try to enable the autoinstall featured (with the x64 SRLwrapper) but the game just start and doesn't do anything more (I even follow the tutorial video), and with the x32 the game crash at the initial launch. The game uses ADVHD engine!
Thanks in advance!
Chinkamo Twins! Futago no Imouto-tachi ni Natsukareteru no wa Wakatteta kedo Masaka Ren'ai Kanjou ni Kawaru Nante Omottenakatta Ken/ちんかもツインズ! ~ふたごの妹たちに懐かれてるのはわかってたけどまさか恋愛感情に変わるなんて思ってなかった件~
Softpa
Use AutoInstall it work well in English,but,when i tried to translate the text to Chinese,something went wrong.
Correct text:
测试文字是否正常
很显然不是很正常,接下里是一段测试文本,测试。
苟利国家生死以,岂因祸福避趋之
Why is this happening and what can I do to resolve this?
waiting for my request,thanks.
I use StringReloads today
Found a problem. The error report is as follows
[INF] SRL - StringReloads v7.6.18
[INF] Created by Marcussacana
[DBG] Working Directory: G:\game\gal\WillPlus\44\StringReloads
[DBG] Initializing SRL...
[DBG] Cache not found, Building database...
[DBG] 0 Database(s) Loaded
[DBG] 0 Remap(s) Loaded
[DBG] 0 Alternative Remap(s) Loaded
[DBG] 0 Hashes Ready
[DBG] Hook "gdi32.dll->CreateFontA" Compiled; Hook: 0x0000000002D71F1E; Bypass: 0x000000000F9A0000
[DBG] Hook "gdi32.dll->CreateFontW" Compiled; Hook: 0x0000000002D71E3E; Bypass: 0x000000000F9B0000
[DBG] Hook "gdi32.dll->CreateFontIndirectA" Compiled; Hook: 0x0000000002D71E8E; Bypass: 0x000000000F9C0000
[DBG] Hook "gdi32.dll->CreateFontIndirectW" Compiled; Hook: 0x0000000002D71EDE; Bypass: 0x000000000F9D0000
[DBG] Hook "gdi32.dll->ExtTextOutA" Compiled; Hook: 0x0000000002D71F6E; Bypass: 0x000000000F9E0000
[DBG] Hook "gdi32.dll->ExtTextOutW" Compiled; Hook: 0x0000000002D71FBE; Bypass: 0x000000000F9F0000
[DBG] Hook "gdi32.dll->GetCharABCWidthsFloatA" Compiled; Hook: 0x0000000002D7200E; Bypass: 0x000000000FFA0000
[DBG] Hook "gdi32.dll->GetCharABCWidthsFloatW" Compiled; Hook: 0x0000000002D7205E; Bypass: 0x000000000FFB0000
[DBG] Hook "gdi32.dll->GetCharacterPlacementA" Compiled; Hook: 0x0000000002D720AE; Bypass: 0x000000000FFD0000
[DBG] Hook "gdi32.dll->GetCharacterPlacementW" Compiled; Hook: 0x0000000002D75196; Bypass: 0x0000000012070000
[DBG] Hook "gdi32.dll->GetGlyphOutlineA" Compiled; Hook: 0x0000000002D7539E; Bypass: 0x0000000012080000
[DBG] Hook "gdi32.dll->GetGlyphOutlineW" Compiled; Hook: 0x0000000002D753C6; Bypass: 0x0000000012090000
[DBG] Hook "gdi32.dll->GetTextExtentPoint32A" Compiled; Hook: 0x0000000002D750CE; Bypass: 0x00000000120A0000
[DBG] Hook "gdi32.dll->GetTextExtentPoint32W" Compiled; Hook: 0x0000000002D7507E; Bypass: 0x00000000120B0000
[DBG] Hook "kernel32.dll->lstrcpyA" Compiled; Hook: 0x0000000002D7534E; Bypass: 0x00000000120C0000
[DBG] Hook "kernel32.dll->lstrcpyA" Compiled; Hook: 0x0000000002D750A6; Bypass: 0x00000000120D0000
[DBG] Hook "OleAut32.dll->SysAllocString" Compiled; Hook: 0x0000000002D7511E; Bypass: 0x00000000120E0000
[DBG] Hook "Kernel32.dll->MultiByteToWideChar" Compiled; Hook: 0x0000000002D752AE; Bypass: 0x00000000120F0000
[DBG] Hook "Kernel32.dll->WideCharToMultiByte" Compiled; Hook: 0x0000000002D7520E; Bypass: 0x0000000012100000
[DBG] Hook "gdi32.dll->TextOutA" Compiled; Hook: 0x0000000002D7502E; Bypass: 0x0000000012110000
[DBG] Hook "gdi32.dll->TextOutW" Compiled; Hook: 0x0000000002D75376; Bypass: 0x0000000012130000
[DBG] Hook "OleAut32.dll->SysAllocString" Compiled; Hook: 0x0000000002D75F6E; Bypass: 0x00000000121A0000
[INF] AdvHD Engine Detected.
[INF] SRL Initialized
[TRC] Character Remaped from to
[ERR] [EntryPoint.cs:74(ProcessW)]
System.Exception: No Database Loaded
in StringReloads.Engine.SRL.get_CurrentDatabase()
in StringReloads.Engine.Match.BasicMatch.MatchString(String String)
in StringReloads.Engine.SRL.MatchString(IMatch This, String String)
in StringReloads.Engine.SRL.ProcessString(String String)
in StringReloads.Engine.SRL.ProcessString(WCString pString)
in StringReloads.EntryPoint.ProcessW(Void* Value)
[ERR] [EntryPoint.cs:74(ProcessW)]
System.Exception: No Database Loaded
in StringReloads.Engine.SRL.get_CurrentDatabase()
in StringReloads.Engine.Match.BasicMatch.MatchString(String String)
in StringReloads.Engine.SRL.MatchString(IMatch This, String String)
in StringReloads.Engine.SRL.ProcessString(String String)
in StringReloads.Engine.SRL.ProcessString(WCString pString)
in StringReloads.EntryPoint.ProcessW(Void* Value)
[ERR] [EntryPoint.cs:74(ProcessW)]
System.Exception: No Database Loaded
in StringReloads.Engine.SRL.get_CurrentDatabase()
in StringReloads.Engine.Match.BasicMatch.MatchString(String String)
in StringReloads.Engine.SRL.MatchString(IMatch This, String String)
in StringReloads.Engine.SRL.ProcessString(String String)
in StringReloads.Engine.SRL.ProcessString(WCString pString)
in StringReloads.EntryPoint.ProcessW(Void* Value)
[ERR] [EntryPoint.cs:74(ProcessW)]
System.Exception: No Database Loaded
in StringReloads.Engine.SRL.get_CurrentDatabase()
in StringReloads.Engine.Match.BasicMatch.MatchString(String String)
in StringReloads.Engine.SRL.MatchString(IMatch This, String String)
in StringReloads.Engine.SRL.ProcessString(String String)
in StringReloads.Engine.SRL.ProcessString(WCString pString)
in StringReloads.EntryPoint.ProcessW(Void* Value)
[ERR] [EntryPoint.cs:74(ProcessW)]
System.Exception: No Database Loaded
in StringReloads.Engine.SRL.get_CurrentDatabase()
in StringReloads.Engine.Match.BasicMatch.MatchString(String String)
in StringReloads.Engine.SRL.MatchString(IMatch This, String String)
in StringReloads.Engine.SRL.ProcessString(String String)
in StringReloads.Engine.SRL.ProcessString(WCString pString)
in StringReloads.EntryPoint.ProcessW(Void* Value)
[ERR] [EntryPoint.cs:74(ProcessW)]
System.Exception: No Database Loaded
in StringReloads.Engine.SRL.get_CurrentDatabase()
in StringReloads.Engine.Match.BasicMatch.MatchString(String String)
in StringReloads.Engine.SRL.MatchString(IMatch This, String String)
in StringReloads.Engine.SRL.ProcessString(String String)
in StringReloads.Engine.SRL.ProcessString(WCString pString)
in StringReloads.EntryPoint.ProcessW(Void* Value)
[CRI] [EntryPoint.cs:77(ProcessW)]
System.Exception: No Database Loaded
in StringReloads.Engine.SRL.get_CurrentDatabase()
in StringReloads.Engine.Match.BasicMatch.MatchString(String String)
in StringReloads.Engine.SRL.MatchString(IMatch This, String String)
in StringReloads.Engine.SRL.ProcessString(String String)
in StringReloads.Engine.SRL.ProcessString(WCString pString)
in StringReloads.EntryPoint.ProcessW(Void* Value)
Greeting! I've use your method to translate a game using Willplus Engine and I've got SRL.log. However the game seems running without Strings-A_00.lst, therefore the translated strings didn't display in the game. So I'm seeking for a solution. Here's the SRL.log. Could you help me find the issue that cause it? Thank you for your help!
SRL.log
This is a text file
Scripts.zip
I want to translate game shin-neko ~再会した妹との新たな関係~ with StringReloads, but There was an error
https://huyvuvi123-gmail.tinytake.com/tt/NDYwMzIzNl8xNDU5MDE2MA
I appreciate these tools being made for VN translation and I'm interested in translating Anata ni Koi Suru Ren'ai Recette. I've installed the plugin and got it to work after a lot of confusion but now I'm stuck on a character limit issue.
There it cuts off. I see there is a part of this for font stuff, which I assume is to help with issues like this, but I can't get it to work. I've been using the included [Font.0] in SRL.ini and changing its settings as well trying the different hooks but the text doesn't seem to change.
When I open the PMan.exe, it shows this error.
And I can't install plugins.
Btw, I replaced it with the one from:
SacanaWrapper
and it worked.
Hi marcus. I have a problem with the rugp 6.2 engine of the Schwarzesmarken game by age. Through the debugger, I found this function (seen in the screenshot). Then, through the multiline assembler, I assemble the SRL code in the .patch section. After that, I change those two lines to jmp StrInject, and it seems like everything works fine, SRL is initialized, parses one line (parses correctly), but after that, the game immediately crashes. What could be the problem? Maybe the wrong function? Although, perhaps due to the fact that I do not know assembler at all.
In fact, I tried to do it with your YouTube video, but because I don’t know Portuguese (and English too), it didn’t work.
In any case, I now need help, since the translation of Schwarzesmarken into Russian was ready back in 2017, but I could not insert the translation into the game. I would be grateful for your help.
Hi,
Really nice tool, using it to change fonts was pretty straight forward and results were good.
However I've got another question, I'm currently working on a translation of a game which has menus built in the .exe file.
Now most of the menus I was able to translate through simple hex editing and resource hacker, but some of the strings are either not defined through resources or are not static and as such I was not able to replace them through hex editing.
Can StringReloads be used to somehow translate these?
Thanks
after i creater new font has char vietnamese corresponding char of SJIS but in game, chars vietnamese are gone in location of it
I'm trying to use SRL on a SoftPAL game, Bakunyuu Okami and am getting this error.
When I launch the game, it doesn't start up at all and just the command prompt shows up displaying this error.
I enabled AutoInstall and Debug in SRL.ini
[DBG] Hook "kernel32->LoadResource" Compiled; Hook: 0x0000000005161DB6; Bypass: 0x0000000007B10000
[ERR] [EntryPoint.cs:45(Process)]
System.NullReferenceException: Object reference not set to an instance of an object.
at StringReloads.Hook.Base.MemoryCodeReader.ReadByte()
at Iced.Intel.Decoder.ReadByte()
at Iced.Intel.Decoder.Decode(Instruction& instruction)
at StringReloads.Hook.Base.Extensions.DecodeMany(Decoder Decoder, UInt32 MinLength)
at StringReloads.Hook.Base.Hook.AssemblyHook()
at StringReloads.Hook.Base.Hook.Compile(Boolean ImportHook, Nullable`1 TargetModule)
at StringReloads.Hook.Others.EntisGLS_eslHeapAllocate.Initialize()
at StringReloads.AutoInstall.EntisGLS..ctor()
at StringReloads.Engine.SRL.get_Installers()
at StringReloads.Engine.Initializer.PluginsInitializer(SRL Engine)
at StringReloads.Engine.Initializer.Initialize(SRL Engine)
at StringReloads.Engine.SRL.ResolveRemap(IMatch This, Char Char)
at StringReloads.EntryPoint.Process(Void* Value)
[ERR] [Initializer.cs:28(Initialize)]
I already have the .lst file from LSTGenerator and I'm using SRLWrapperx86 with d3d9.dll.
Here is the full log file
SRL.log
I also tried this on Ai Kiss and have the same error.
When the game tries to load winmm.dll, it reports that it cannot find the entry point. What should I do? It doesn't display any CMD window or print any logs.
I only changed:
[StringReloads]
AutoInstall=true
[Hooks]
CreateFontIndirectA=true
[Font.0]
To=MS PGothic
Charset=128
OS: WIN10
dll: SRLWrapper.x86.zip
Only winmm.dll elicits a response from game.exe, while others like d3d9.dll show no response at all. There are no pop-up windows or error dialogs.
After I used the Auto-Install, nothing happened. I tried using Font Modifier but the font still doesn't change
I'm trying to inject StringReloads v7.7.0 into a game called "Otome ga Kanaderu Koi no Aria", which uses the AdvHD engine. I'm trying to change the font and its size using the StringReloads program, but I'm unsuccessful no matter what I do. I consistently get a "No Database Loaded" error in the log file, and the game crashes. Where can I get this database? How do I configure the program correctly? There aren't any guides, and the video in the readme is outdated.
Error CS0246 The type or namespace name 'CoInitializeDelegate' could not be found (are you missing a using directive or an assembly reference?) StringReloads C:\StringReloads-master\StringReloads\Hook\Win32\CoInitialize.cs 9 Active
Error CS1955 Non-invocable member 'Hook<CoInitializeDelegate>.Bypass' cannot be used like a method. StringReloads C:\StringReloads-master\StringReloads\Hook\Win32\CoInitialize.cs 23 Active
how can i solve this problem ?
Visual Studio Version 16.7.5
Hello Marcus! May I ask how to change font of games that have no CreateFont nor CreateFontIndirect function? Thank you.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.