5 Commits

Author SHA1 Message Date
a07958563a 1.0.7 2025-07-25 21:25:29 -07:00
c80204579f change how to check for dependencies 2025-07-25 21:25:01 -07:00
11909e8502 1.0.6 2025-07-25 19:03:52 -07:00
8ec2cc6da2 clarify README 2025-07-25 15:02:20 -07:00
14db7719a3 Add option to build rosettax87 locally (#9)
Reviewed-on: #9
2025-07-25 22:00:00 +00:00
5 changed files with 16 additions and 21 deletions

View File

@@ -2,5 +2,5 @@
Icon = "Icon.png" Icon = "Icon.png"
Name = "EpochSilicon" Name = "EpochSilicon"
ID = "com.burkey.epochsilicon" ID = "com.burkey.epochsilicon"
Version = "1.0.3" Version = "1.0.7"
Build = 29 Build = 30

View File

@@ -19,11 +19,7 @@ build: build-dev
build-release: build-release:
@rm -rf ./EpochSilicon.app @rm -rf ./EpochSilicon.app
@echo "Building optimized release version..." @echo "Building optimized release version..."
CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build \ CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -trimpath -tags=release -o epochsilicon .
-ldflags="-s -w -X main.appVersion=$$(grep Version FyneApp.toml | cut -d'"' -f2)" \
-trimpath \
-tags=release \
-o epochsilicon .
@echo "Packaging with fyne..." @echo "Packaging with fyne..."
GOOS=darwin GOARCH=arm64 fyne package --release --executable epochsilicon GOOS=darwin GOARCH=arm64 fyne package --release --executable epochsilicon
@echo "Copying additional resources to app bundle..." @echo "Copying additional resources to app bundle..."

View File

@@ -4,6 +4,8 @@
A user-friendly launcher for Project Epoch on Apple Silicon Macs, with one-click patching of winerosetta, rosettax87 and d9vk. A user-friendly launcher for Project Epoch on Apple Silicon Macs, with one-click patching of winerosetta, rosettax87 and d9vk.
**This software is currently in active development, there WILL be bugs and constant updates as Epoch rolls out**
## Features ## Features
* **Apple Silicon Compatibility:** Runs 32-bit DirectX9 World of Warcraft (v3.3.5a) on M1/M2/M3/M4 Macs without "illegal instruction" errors. * **Apple Silicon Compatibility:** Runs 32-bit DirectX9 World of Warcraft (v3.3.5a) on M1/M2/M3/M4 Macs without "illegal instruction" errors.
@@ -48,16 +50,16 @@ Before you begin, ensure you have the following:
* Click "Patch Epoch". * Click "Patch Epoch".
* Click "Patch CrossOver". * Click "Patch CrossOver".
* Status indicators will turn green once patching is successful for each. * Status indicators will turn green once patching is successful for each.
6. **Start RosettaX87 Service**: 5. **Start RosettaX87 Service**:
* Click "Start Service" and enter your sudo password when prompted. * Click "Start Service" and enter your sudo password when prompted.
* This will run the RosettaX87 service in the background and is required for launching the game. * This will run the RosettaX87 service in the background and is required for launching the game.
* The service will automatically stop when you close the launcher. * The service will automatically stop when you close the launcher.
7. **Configure Options (Optional)**: 6. **Configure Options (Optional)**:
* **Enable Metal Hud**: Shows FPS counter in-game. * **Enable Metal Hud**: Shows FPS counter in-game.
* **Advanced Logging**: Enables debugging logs, located in `$HOME/Library/Application Support/EpochSilicon`. Enable this setting if you are generating logs for troubleshooting * **Advanced Logging**: Enables debugging logs, located in `$HOME/Library/Application Support/EpochSilicon`. Enable this setting if you are generating logs for troubleshooting
8. **Launch Game**: 7. **Launch Game**:
* Once both paths are set, both components are patched, and the RosettaX87 service is running, the "Launch Game" button will become active. Click it. * Once both paths are set, both components are patched, and the RosettaX87 service is running, the "Launch Game" button will become active. Click it.
9. **Enjoy**: Experience a VM free, smoother Project Epoch on your Apple Silicon Mac! 8. **Enjoy**: Experience a VM free, smoother Project Epoch on your Apple Silicon Mac!
## Troubleshooting / FAQ ## Troubleshooting / FAQ
@@ -74,9 +76,8 @@ The initial patch download is quite large and can take a while if your internet
This appears to be a problem with using a built-in version of `rosettax87`. In order to fix this, you must compile it yourself. This appears to be a problem with using a built-in version of `rosettax87`. In order to fix this, you must compile it yourself.
1. Install Xcode command line tools by opening a terminal and typing `xcode-select --install` and following the prompts 1. Install Xcode command line tools by opening a terminal and typing `xcode-select --install` and following the prompts
2. Install Cmake 2. Setup [Homebrew](https://brew.sh/) if you don't have it already
a. Setup [Homebrew](https://brew.sh/) if you don't have it already 3. Install Cmake by opening a terminal and enter `brew install cmake`
b. Open a terminal and enter `brew install cmake`
3. Run EpochSilicon and click the `Troubleshooting` button 3. Run EpochSilicon and click the `Troubleshooting` button
4. Find the line that says `Build Rosettax87 locally` and click the `Build` button, following the prompts 4. Find the line that says `Build Rosettax87 locally` and click the `Build` button, following the prompts
@@ -123,9 +124,7 @@ TBD
## Bundled Binaries ## Bundled Binaries
The `rosettax87` and `winerosetta` components included in this application are precompiled for convenience. If you prefer, you can compile them yourself by following the instructions provided by Lifeisawful on the official repositories: The `rosettax87` and `winerosetta` components included in this application are precompiled for convenience. You can compile them yourself by following the instructions provided above in the Troubleshooting section
[https://github.com/Lifeisawful/winerosetta](https://github.com/Lifeisawful/winerosetta)
[https://github.com/Lifeisawful/rosettax87](https://github.com/Lifeisawful/rosettax87)
## License ## License
@@ -139,5 +138,5 @@ All credit for the core translation layer `winerosetta` and `rosettax87` goes to
[https://github.com/Lifeisawful/rosettax87](https://github.com/Lifeisawful/rosettax87) [https://github.com/Lifeisawful/rosettax87](https://github.com/Lifeisawful/rosettax87)
EpochSilicon is a fork of [https://turtlesilicon.github.io/](TurtleSilicon), credit for the base of the application goes to tairasu. EpochSilicon is a fork of [https://turtlesilicon.github.io/](TurtleSilicon), credit for the base of the application goes to [**@tairasu**](https://github.com/tairasu)

View File

@@ -11,7 +11,7 @@ import (
"strings" "strings"
) )
const appVersion = "1.0.3" const appVersion = "1.0.7"
func main() { func main() {
log.SetupLogging() log.SetupLogging()

View File

@@ -208,13 +208,13 @@ func showTroubleshootingPopup() {
dialog.NewConfirm("Build rosettax87", msg, func(confirm bool) { dialog.NewConfirm("Build rosettax87", msg, func(confirm bool) {
if confirm { if confirm {
// Check for dependencies // Check for dependencies
if _, err := exec.LookPath("clang"); err != nil { if err := exec.Command("clang", "--version").Run(); err != nil {
m := fmt.Errorf("xcode command line tools are not installed on your computer. Click the Website button in the app and read the instructions on building rosettax87 before trying again") m := fmt.Errorf("xcode command line tools are not installed on your computer. Click the Website button in the app and read the instructions on building rosettax87 before trying again")
log.Error(m.Error()) log.Error(m.Error())
dialog.ShowError(m, currentWindow) dialog.ShowError(m, currentWindow)
return return
} }
if _, err := exec.LookPath("cmake"); err != nil { if err := exec.Command("cmake", "--version").Run(); err != nil {
m := fmt.Errorf("Cmake is not installed on your computer. Click the Website button in the app and read the instructions on building rosettax87 before trying again") m := fmt.Errorf("Cmake is not installed on your computer. Click the Website button in the app and read the instructions on building rosettax87 before trying again")
log.Error(m.Error()) log.Error(m.Error())
dialog.ShowError(m, currentWindow) dialog.ShowError(m, currentWindow)