# Epoch Silicon

![](ss.png)

A user-friendly launcher for Project Epoch on Apple Silicon Macs, with one-click patching of winerosetta, rosettax87 and d9vk.

## Features

*   **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
*   **Automated Setup:** One-click patching for both CrossOver and Epoch installations.
*   **Simple Interface:** Easy to use GUI with status indicators and configuration options.

## Known Issues

- For one tester, it took up to a minute for Wow to start after hitting the "Play" button. This is currently being investigated.
 
## Usage

### Prerequisites

Before you begin, ensure you have the following:

* A working version of [CrossOver](https://www.codeweavers.com/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 download the client from [Project Epoch's download page](https://project-epoch.com/play)
* Place the client in a folder you have rights to. Your user directory (example: `/Users/username/Epoch`) is a good default choice. Avoid spaces in your path!

### Installation

1. [Click here to download the latest release](https://git.burkey.co/eburk/EpochSilicon/releases/download/latest/EpochSilicon.dmg).
2. Double-click `EpochSilicon.dmg`.
3. Drag `EpochSilicon` into `Applications`. You may now close and eject the disk image.
4. Run `EpochSilicon` like you would any other application using Launchpad, Shortcut, etc.

### Setup

1.  Launch `EpochSilicon`.
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.
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**:
    *   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.
    *   The service will automatically stop when you close the launcher.
7.  **Configure Options (Optional)**:
    *   **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 VM free, smoother Project Epoch on your Apple Silicon Mac!

## Troubleshooting / FAQ

### The Patch Epoch step is taking forever

The initial patch download is quite large and can take a while if your internet is slow. The app will tell you when it's done.

### My resolution is super blown up and I can't see the whole screen

Wine does that on first launch if you have a large widescreen monitor.
1. Hit Escape to close the game 
2. Open your `Config.wtf` file in a text editor, it is located in your wow game directory at `/WTF/Config.wtf`
3. Add your desired resolution. I have a 3440x1440 monitor so I added the following to my `Config.WTF`
```
SET gxResolution "3440x1440"
```

### When I change graphics settings, all the buttons have big white boxes around them

This is another common wine issue, just close the game normally and it should be fixed on next startup

## Running from Source Code

If you prefer to run the application directly from source code:

1.  **Clone the repository**:
    ```sh
    git clone https://git.burkey.co/eburk/EpochSilicon
    ```

2.  **Navigate to the directory**:
    ```sh
    cd EpochSilicon
    ```

3.  **Run the application**:
    ```sh
    go run main.go
    ```
    
    Note: This method requires Go and Fyne to be installed on your system.

4.  **Use the application** as described in Method 1 (steps 2-6).

## Recommended settings

TBD

## 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: 
[https://github.com/Lifeisawful/winerosetta](https://github.com/Lifeisawful/winerosetta)
[https://github.com/Lifeisawful/rosettax87](https://github.com/Lifeisawful/rosettax87)

## License

This project is licensed under the MIT License.

## Credits

All credit for the core translation layer `winerosetta` and `rosettax87` goes to [**@Lifeisawful**](https://github.com/Lifeisawful). This application is merely a Fyne-based GUI wrapper to simplify the patching and launching process.

[https://github.com/Lifeisawful/winerosetta](https://github.com/Lifeisawful/winerosetta)

[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.

