build scripts
Some checks failed
Build Go/Fyne App for macOS ARM64 / build (pull_request) Has been cancelled

This commit is contained in:
2025-07-22 13:42:30 -07:00
parent abb9f3a0e5
commit 1b07d8ecc6
8 changed files with 50 additions and 55 deletions

View File

@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>epochsilicon</string> <string>epochsilicon</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.eburk.epochsilicon</string> <string>com.burkey.epochsilicon</string>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>icon.icns</string> <string>icon.icns</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
@@ -17,7 +17,7 @@
<string>MacOSX</string> <string>MacOSX</string>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>99</string> <string>133</string>
<key>NSHighResolutionCapable</key> <key>NSHighResolutionCapable</key>
<true/> <true/>
<key>NSSupportsAutomaticGraphicsSwitching</key> <key>NSSupportsAutomaticGraphicsSwitching</key>

View File

@@ -1,6 +1,6 @@
[Details] [Details]
Icon = "Icon.png" Icon = "Icon.png"
Name = "EpochSilicon" Name = "EpochSilicon"
ID = "com.eburk.epochsilicon" ID = "com.burkey.epochsilicon"
Version = "1.2.4" Version = "1.2.4"
Build = 100 Build = 134

View File

@@ -1,5 +1,6 @@
MIT License MIT License
Copyright (c) 2025 Evan Burkey <evan@burkey.co>
Copyright (c) 2025 tairasu Copyright (c) 2025 tairasu
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@@ -17,6 +17,7 @@ build-dev:
build: build-dev build: build-dev
build-release: build-release:
@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 -X main.appVersion=$$(grep Version FyneApp.toml | cut -d'"' -f2)" \ -ldflags="-s -w -X main.appVersion=$$(grep Version FyneApp.toml | cut -d'"' -f2)" \
@@ -40,15 +41,25 @@ build-release:
clean: clean:
rm -rf EpochSilicon.app rm -rf EpochSilicon.app
rm -f EpochSilicon.dmg rm -f EpochSilicon.dmg
rm -f EpochSilicon.zip
rm -f epochsilicon rm -f epochsilicon
dmg: build-release sign: build-release
@echo "Preparing DMG staging directory..." codesign --timestamp --options runtime -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.app/Contents/Resources/rosettax87/rosettax87
codesign --timestamp --options runtime -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.app/Contents/Resources/rosettax87/libRuntimeRosettax87
codesign --timestamp --options runtime -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.app
@/usr/bin/ditto -c -k -rsrc --sequesterRsrc --keepParent ./EpochSilicon.app EpochSilicon.zip
xcrun notarytool submit --keychain-profile "EpochSilicon" --wait ./EpochSilicon.zip
xcrun stapler staple ./EpochSilicon.app
dmg: build-release sign
echo "Preparing DMG staging directory..."
@rm -rf dmg-staging @rm -rf dmg-staging
@mkdir dmg-staging @mkdir dmg-staging
@cp -R EpochSilicon.app dmg-staging/ @/usr/bin/ditto --rsrc ./EpochSilicon.app dmg-staging/EpochSilicon.app
@ln -s /Applications dmg-staging/Applications @ln -s /Applications dmg-staging/Applications
@echo "Creating DMG file..." hdiutil create -volname EpochSilicon -srcfolder dmg-staging -ov -format UDZO EpochSilicon.dmg
@hdiutil create -volname EpochSilicon -srcfolder dmg-staging -ov -format UDZO EpochSilicon.dmg
@echo "DMG created: EpochSilicon.dmg"
@rm -rf dmg-staging @rm -rf dmg-staging
codesign --timestamp -i com.burkey.epochsilicon -s "Developer ID Application: Evan Burkey (2TXG4AP658)" ./EpochSilicon.dmg
xcrun notarytool submit --keychain-profile "EpochSilicon" --wait ./EpochSilicon.dmg
xcrun stapler staple ./EpochSilicon.dmg

View File

@@ -1,29 +1,13 @@
<h1 align="center"><img src="Icon.png" alt="EpochSilicon Logo" width="50" height="50" align="center"> EpochSilicon</h1> A user-friendly launcher for Project Epoch on Apple Silicon Macs, with one-click patching of winerosetta, rosettax87 and d9vk.
<div align="center">
<a href="">[![Build](https://github.com/tairasu/TurtleSilicon/actions/workflows/build.yml/badge.svg)](https://github.com/tairasu/TurtleSilicon/actions/workflows/build.yml)</a>
<a href="">[![Github All Releases](https://img.shields.io/github/downloads/tairasu/TurtleSilicon/total.svg)]()</a>
</div>
<div align="center">
<img src="img/epochsilicon-fps_v2.png" alt="Turtle WoW FPS on Apple Silicon" width="49%" />
<img src="img/epochsilicon-app_v4.png" alt="TurtleSilicon Application" width="49%" />
</div>
A user-friendly launcher for Turtle WoW on Apple Silicon Macs, with one-click patching of winerosetta, rosettax87 and d9vk.
## Prerequisites ## Prerequisites
Before you begin, ensure you have the following: Before you begin, ensure you have the following:
* A working version of **CrossOver** installed (the trial version is sufficient and can still be used after expiration). * A working version of **CrossOver** installed (the trial version is sufficient and can still be used after expiration).
- I recommend using CrossOver v25.0.1 or later. Older versions will cause issues. - You must use CrossOver v25.0.1 or later. Older versions will cause issues.
* The **Turtle WoW Client** downloaded from the official website. * A 3.3.5a World of Warcraft client. You can easily get the client from [Project Epoch's download page](https://project-epoch.com/play)
* Place the client in an folder you have rights to. Your user directory (example: `/Users/username/Epoch`) is a good default choice. Avoid spaces in your path!
## Credits ## Credits
@@ -33,30 +17,34 @@ 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.
## Features ## Features
* **Apple Silicon Compatibility:** Runs 32-bit DirectX9 World of Warcraft (v1.12) 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.
* **Performance Optimization:** * **Performance Optimization:**
* Integrates `rosettax87` for accelerated x87 FPU instructions * Integrates `rosettax87` for accelerated x87 FPU instructions
* Uses `d9vk` for efficient DirectX9 via Vulkan/Metal translation * Uses `d9vk` for efficient DirectX9 via Vulkan/Metal translation
* Achieves significant FPS improvements (20 FPS → 200+ FPS in many scenarios) * Achieves significant FPS improvements
* **Vanilla-Tweaks Support:** Optional integration with automatic application. * **Automated Setup:** One-click patching for both CrossOver and Epoch installations.
* **Automated Setup:** One-click patching for both CrossOver and Turtle WoW installations.
* **Simple Interface:** Easy to use GUI with status indicators and configuration options. * **Simple Interface:** Easy to use GUI with status indicators and configuration options.
## Usage ## Usage
### Installation
### Method 1: Using the Pre-built Application ### Method 1: Using the Pre-built Application
1. Launch `TurtleSilicon.app`. 1. Launch `EpochSilicon.app`.
* (The app is not signed, so you will get a "this app is damaged" message. Open Terminal and enter `xattr -cr /Applications/TurtleSilicon.app` to bypass it) 2. **Set CrossOver Path**:
3. **Set CrossOver Path**:
* If CrossOver is installed in the default location (`/Applications/CrossOver.app`), this path will be pre-filled. * If CrossOver is installed in the default location (`/Applications/CrossOver.app`), this path will be pre-filled.
* Otherwise, click "Set/Change" and navigate to your `CrossOver.app` bundle. * Otherwise, click "Set/Change" and navigate to your `CrossOver.app` bundle.
4. **Set TurtleWoW Directory Path**: 3. **Set Warcraft Directory Path**:
* Click "Set/Change" and select the folder where you have your Turtle WoW client files. * Click "Set/Change" and select the folder where you have your WoW 3.3.5a client files.
5. **Apply Patches**: 4. **Apply Patches**:
* Click "Patch TurtleWoW". * 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**: 6. **Start RosettaX87 Service**:
@@ -64,13 +52,11 @@ All credit for the core translation layer `winerosetta` and `rosettax87` goes to
* 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)**: 7. **Configure Options (Optional)**:
* **Enable vanilla-tweaks**: Check this box to use vanilla-tweaks, which provides various game improvements and fixes.
* If vanilla-tweaks hasn't been applied yet, TurtleSilicon will automatically offer to apply it when you launch the game.
* **Enable Metal Hud**: Shows FPS counter in-game. * **Enable Metal Hud**: Shows FPS counter in-game.
* **Show Terminal**: Displays terminal output during game launch for debugging. * **Show Terminal**: Displays terminal output during game launch for debugging.
8. **Launch Game**: 8. **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 significantly smoother Turtle WoW on your Apple Silicon Mac! 9. **Enjoy**: Experience a VM free, smoother Project Epoch on your Apple Silicon Mac!
### Method 2: Running from Source Code ### Method 2: Running from Source Code
@@ -78,12 +64,12 @@ If you prefer to run the application directly from source code:
1. **Clone the repository**: 1. **Clone the repository**:
```sh ```sh
git clone https://github.com/tairasu/TurtleSilicon.git git clone https://git.burkey.co/eburk/EpochSilicon
``` ```
2. **Navigate to the directory**: 2. **Navigate to the directory**:
```sh ```sh
cd TurtleSilicon cd EpochSilicon
``` ```
3. **Run the application**: 3. **Run the application**:
@@ -97,10 +83,7 @@ If you prefer to run the application directly from source code:
## Recommended settings ## Recommended settings
1. Set "Terrain distance" as low as possible. This reduces the overhead stress on the CPU TBD
2. Turn Vertex Animation Shaders on. Otherwise you get graphic glitches on custom models.
3. Set Multisampling to 24-bit color 24-bit depth **2x** to make portraits load
4. Add `SET shadowLOD "0"` to your Config.wtf inside the WTF directory
## Build Instructions ## Build Instructions
@@ -130,10 +113,10 @@ If you prefer to build manually:
```sh ```sh
GOOS=darwin GOARCH=arm64 fyne package GOOS=darwin GOARCH=arm64 fyne package
# Then manually copy the resource directories # Then manually copy the resource directories
cp -R rosettax87 winerosetta TurtleSilicon.app/Contents/Resources/ cp -R rosettax87 winerosetta EpochSilicon.app/Contents/Resources/
``` ```
In either case, this will create a `TurtleSilicon.app` file in the project directory, which you can then run. In either case, this will create a `EpochSilicon.app` file in the project directory, which you can then run.
Make sure you have an `Icon.png` file in the root of the project directory before building. Make sure you have an `Icon.png` file in the root of the project directory before building.

View File

@@ -11,7 +11,7 @@ import (
const appVersion = "0.1.0" const appVersion = "0.1.0"
func main() { func main() {
PEApp := app.NewWithID("com.eburk.epochsilicon") PEApp := app.NewWithID("com.burkey.epochsilicon")
PEWindow := PEApp.NewWindow("EpochSilicon v" + appVersion) PEWindow := PEApp.NewWindow("EpochSilicon v" + appVersion)
PEWindow.Resize(fyne.NewSize(650, 500)) PEWindow.Resize(fyne.NewSize(650, 500))
PEWindow.SetFixedSize(true) PEWindow.SetFixedSize(true)

Binary file not shown.

Binary file not shown.