diff --git a/main.go b/main.go index 712ab88..e0c669d 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,7 @@ import ( "turtlesilicon/pkg/ui" // Updated import path ) -const appVersion = "1.0.3" // Added version constant +const appVersion = "1.0.4" func main() { myApp := app.NewWithID("com.tairasu.turtlesilicon") diff --git a/pkg/patching/patching.go b/pkg/patching/patching.go index fa5ab04..3ada653 100644 --- a/pkg/patching/patching.go +++ b/pkg/patching/patching.go @@ -25,12 +25,13 @@ func PatchTurtleWoW(myWindow fyne.Window, updateAllStatuses func()) { targetWinerosettaDll := filepath.Join(paths.TurtlewowPath, "winerosetta.dll") targetD3d9Dll := filepath.Join(paths.TurtlewowPath, "d3d9.dll") + targetLibSiliconPatchDll := filepath.Join(paths.TurtlewowPath, "libSiliconPatch.dll") targetRosettaX87Dir := filepath.Join(paths.TurtlewowPath, "rosettax87") dllsTextFile := filepath.Join(paths.TurtlewowPath, "dlls.txt") - filesToCopy := map[string]string{ - "winerosetta/winerosetta.dll": targetWinerosettaDll, - "winerosetta/d3d9.dll": targetD3d9Dll, + "winerosetta/winerosetta.dll": targetWinerosettaDll, + "winerosetta/d3d9.dll": targetD3d9Dll, + "winerosetta/libSiliconPatch.dll": targetLibSiliconPatchDll, } for resourceName, destPath := range filesToCopy { diff --git a/pkg/ui/ui.go b/pkg/ui/ui.go index 5dd3340..127710d 100644 --- a/pkg/ui/ui.go +++ b/pkg/ui/ui.go @@ -68,6 +68,7 @@ func UpdateAllStatuses() { turtlewowPathLabel.Segments = []widget.RichTextSegment{&widget.TextSegment{Text: paths.TurtlewowPath, Style: widget.RichTextStyle{ColorName: theme.ColorNameSuccess}}} winerosettaDllPath := filepath.Join(paths.TurtlewowPath, "winerosetta.dll") d3d9DllPath := filepath.Join(paths.TurtlewowPath, "d3d9.dll") + libSiliconPatchDllPath := filepath.Join(paths.TurtlewowPath, "libSiliconPatch.dll") rosettaX87DirPath := filepath.Join(paths.TurtlewowPath, "rosettax87") dllsTextFile := filepath.Join(paths.TurtlewowPath, "dlls.txt") rosettaX87ExePath := filepath.Join(rosettaX87DirPath, "rosettax87") @@ -76,14 +77,16 @@ func UpdateAllStatuses() { dllsFileValid := false if utils.PathExists(dllsTextFile) { if fileContent, err := os.ReadFile(dllsTextFile); err == nil { - if strings.Contains(string(fileContent), "winerosetta.dll") { + contentStr := string(fileContent) + if strings.Contains(contentStr, "winerosetta.dll") && strings.Contains(contentStr, "libSiliconPatch.dll") { dllsFileValid = true } } } - if utils.PathExists(winerosettaDllPath) && utils.PathExists(d3d9DllPath) && utils.DirExists(rosettaX87DirPath) && - utils.PathExists(rosettaX87ExePath) && utils.PathExists(libRuntimeRosettaX87Path) && dllsFileValid { + if utils.PathExists(winerosettaDllPath) && utils.PathExists(d3d9DllPath) && utils.PathExists(libSiliconPatchDllPath) && + utils.DirExists(rosettaX87DirPath) && utils.PathExists(rosettaX87ExePath) && + utils.PathExists(libRuntimeRosettaX87Path) && dllsFileValid { paths.PatchesAppliedTurtleWoW = true } else { // paths.PatchesAppliedTurtleWoW = false diff --git a/winerosetta/libSiliconPatch.dll b/winerosetta/libSiliconPatch.dll index ce0602b..d75808c 100755 Binary files a/winerosetta/libSiliconPatch.dll and b/winerosetta/libSiliconPatch.dll differ