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

View File

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

View File

@@ -1,5 +1,6 @@
MIT License
Copyright (c) 2025 Evan Burkey <evan@burkey.co>
Copyright (c) 2025 tairasu
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-release:
@rm -rf ./EpochSilicon.app
@echo "Building optimized release version..."
CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build \
-ldflags="-s -w -X main.appVersion=$$(grep Version FyneApp.toml | cut -d'"' -f2)" \
@@ -40,15 +41,25 @@ build-release:
clean:
rm -rf EpochSilicon.app
rm -f EpochSilicon.dmg
rm -f EpochSilicon.zip
rm -f epochsilicon
dmg: build-release
@echo "Preparing DMG staging directory..."
sign: build-release
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
@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
@echo "Creating DMG file..."
@hdiutil create -volname EpochSilicon -srcfolder dmg-staging -ov -format UDZO EpochSilicon.dmg
@echo "DMG created: EpochSilicon.dmg"
@rm -rf dmg-staging
hdiutil create -volname EpochSilicon -srcfolder dmg-staging -ov -format UDZO EpochSilicon.dmg
@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>
<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.
A user-friendly launcher for Project Epoch on Apple Silicon Macs, with one-click patching of winerosetta, rosettax87 and d9vk.
## Prerequisites
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).
- I recommend using CrossOver v25.0.1 or later. Older versions will cause issues.
* The **Turtle WoW Client** downloaded from the official website.
* A working version of **CrossOver** installed (the trial version is sufficient and can still be used after expiration).
- You must use CrossOver v25.0.1 or later. Older versions will cause issues.
* 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
@@ -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)
EpochSilicon is a fork of [https://turtlesilicon.github.io/](TurtleSilicon), credit for the base of the application goes to tairasu.
## 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:**
* Integrates `rosettax87` for accelerated x87 FPU instructions
* Uses `d9vk` for efficient DirectX9 via Vulkan/Metal translation
* Achieves significant FPS improvements (20 FPS → 200+ FPS in many scenarios)
* **Vanilla-Tweaks Support:** Optional integration with automatic application.
* **Automated Setup:** One-click patching for both CrossOver and Turtle WoW installations.
* Achieves significant FPS improvements
* **Automated Setup:** One-click patching for both CrossOver and Epoch installations.
* **Simple Interface:** Easy to use GUI with status indicators and configuration options.
## Usage
### Installation
### Method 1: Using the Pre-built Application
1. Launch `TurtleSilicon.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)
3. **Set CrossOver Path**:
1. Launch `EpochSilicon.app`.
2. **Set CrossOver Path**:
* 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.
4. **Set TurtleWoW Directory Path**:
* Click "Set/Change" and select the folder where you have your Turtle WoW client files.
5. **Apply Patches**:
* Click "Patch TurtleWoW".
3. **Set Warcraft Directory Path**:
* Click "Set/Change" and select the folder where you have your WoW 3.3.5a client files.
4. **Apply Patches**:
* Click "Patch Epoch".
* Click "Patch CrossOver".
* Status indicators will turn green once patching is successful for each.
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.
* The service will automatically stop when you close the launcher.
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.
* **Show Terminal**: Displays terminal output during game launch for debugging.
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.
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
@@ -78,12 +64,12 @@ If you prefer to run the application directly from source code:
1. **Clone the repository**:
```sh
git clone https://github.com/tairasu/TurtleSilicon.git
git clone https://git.burkey.co/eburk/EpochSilicon
```
2. **Navigate to the directory**:
```sh
cd TurtleSilicon
cd EpochSilicon
```
3. **Run the application**:
@@ -97,10 +83,7 @@ If you prefer to run the application directly from source code:
## Recommended settings
1. Set "Terrain distance" as low as possible. This reduces the overhead stress on the CPU
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
TBD
## Build Instructions
@@ -130,10 +113,10 @@ If you prefer to build manually:
```sh
GOOS=darwin GOARCH=arm64 fyne package
# 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.

View File

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

Binary file not shown.

Binary file not shown.