diff --git a/.github/workflows/deploy_pages.yml b/.github/workflows/deploy_pages.yml new file mode 100644 index 00000000..54e3bfc8 --- /dev/null +++ b/.github/workflows/deploy_pages.yml @@ -0,0 +1,42 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Pages + uses: actions/configure-pages@v2 + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + # Upload entire repository + path: './pages/dist' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 69a1b7df..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: Release and Deploy - -on: - push: - branches: - - '**' - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "release-deploy" - cancel-in-progress: true - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y zip gh - - - name: Create dist zip - run: | - mkdir -p release - zip -r release/dist.zip dist - - - name: Get latest release tag - id: get_latest_tag - run: | - LATEST_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName' || echo "") - echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV - - - name: Determine release tag - run: | - if [ -z "${{ env.LATEST_TAG }}" ]; then - echo "RELEASE_TAG=v0.1.0" >> $GITHUB_ENV - else - echo "RELEASE_TAG=${{ env.LATEST_TAG }}" >> $GITHUB_ENV - fi - - - name: Create or update GitHub release - run: | - gh auth setup-git - if gh release view "$RELEASE_TAG" &>/dev/null; then - gh release edit "$RELEASE_TAG" --generate-notes - else - gh release create "$RELEASE_TAG" --generate-notes - fi - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload hoc.kip - run: gh release upload "$RELEASE_TAG" dist/atmosphere/hoc.kip --clobber - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload dist.zip - run: gh release upload "$RELEASE_TAG" release/dist.zip --clobber - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - deploy: - runs-on: ubuntu-latest - needs: release - environment: - name: github-pages - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Setup Pages - uses: actions/configure-pages@v2 - - - name: Ensure dist exists - run: | - if [ ! -d "./pages/dist" ]; then - echo "Error: ./pages/dist does not exist" - exit 1 - fi - - - name: Upload artifact - uses: actions/upload-pages-artifact@v1 - with: - path: './pages/dist' - - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v1 diff --git a/README.md b/README.md index 4bf17ffe..73219487 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,111 @@ +
+logo -![alt text](assets/logo.png "logo") +--- +![License: GPL-2.0](https://img.shields.io/badge/GPL--2.0-red?style=for-the-badge) +![Nintendo Switch](https://img.shields.io/badge/Nintendo_Switch-E60012?style=for-the-badge\&logo=nintendo-switch\&logoColor=white) +[![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge\&logo=discord\&logoColor=white)](https://discord.com/invite/S3eX47dHsB) +![VSCode](https://img.shields.io/badge/VSCode-0078D4?style=for-the-badge\&logo=visual%20studio%20code\&logoColor=white) +![C++](https://img.shields.io/badge/C%2B%2B-00599C?style=for-the-badge\&logo=c%2B%2B\&logoColor=white) +![Downloads](https://img.shields.io/github/downloads/souldbminersmwc/Horizon-OC/total.svg?style=for-the-badge) -![alt text](https://img.shields.io/badge/GPL--2.0-red?style=for-the-badge "logo") ![alt text](https://img.shields.io/badge/Nintendo_Switch-E60012?style=for-the-badge&logo=nintendo-switch&logoColor=white "logo") [![alt text](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.com/invite/S3eX47dHsB) ![alt text](https://img.shields.io/badge/VSCode-0078D4?style=for-the-badge&logo=visual%20studio%20code&logoColor=white) ![alt text](https://img.shields.io/badge/C%2B%2B-00599C?style=for-the-badge&logo=c%2B%2B&logoColor=white) [![Github All Releases](https://img.shields.io/github/downloads/souldbminersmwc/Horizon-OC/total.svg)]() +---
-### DISCLAIMER: THIS TOOL CAN BE DANGEROUS IF MISUSED. PROCEED WITH CAUTION -* Due to the design of Horizon OS, overclocking RAM can cause **NAND DAMAGE**. Ensure to have a NAND Backup
+## ⚠️ Disclaimer -A open source overclocking tool for Nintendo Switch consoles running Atmosphere custom firmware
+> **THIS TOOL CAN BE DANGEROUS IF MISUSED. PROCEED WITH CAUTION.** +> Due to the design of Horizon OS, **overclocking RAM can cause NAND DAMAGE.** +> Ensure you have a **full NAND backup** before proceeding. +--- -## Features: -CPU overclock up to 2397MHz on Mariko units, 2091MHz on Erista units
-GPU up to 1305MHz on Mariko units, 998MHz on Erista units
-RAM up to 3200MHz on Mariko units, 2360MHz on Erista units
-Over/undervolting
-Configurator
-Works with most homebrew
+## 🌀 About -*Higher (potentially dangerous) frequencies are unlockable*
-*The exact maximum overclock varies per console*
-## Installation -Ensure you have the latest version of [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere) and [Ultrahand](https://github.com/ppkantorski/Ultrahand-Overlay) installed before continuing
-Grab latest hoc.kip from releases tab
-If using hekate, edit hekate_ipl.ini to include "kip1=atmosphere/kips/*". No need for editing if using fusee
-Download latest Horizon OC sysmodule from releases tab
-Extract sysmodule into root of SD card
+**Horizon OC** is an open-source overclocking tool for Nintendo Switch consoles running **Atmosphere custom firmware**. +It enables advanced CPU, GPU, and RAM tuning with user-friendly configuration tools. -Alternatively, you can download the configurator and click the two install buttons
+--- +## 🚀 Features -## Configuration -Download the latest configurator on your computer
-Run the file
-Select the drive your SD card or UMS device is mounted as
-Configure the kip to your liking, and in the end, save it
+* **CPU:** Up to `2397MHz` (Mariko) / `2091MHz` (Erista) +* **GPU:** Up to `1305MHz` (Mariko) / `998MHz` (Erista) +* **RAM:** Up to `3200MHz` (Mariko) / `2360MHz` (Erista) +* Over/undervolting support +* Built-in configurator +* Compatible with most homebrew -## Building -Set up a development enviorment ready to compile Atmosphere
-Git clone Atmosphere, and move the cloned folder into build/
-Insert Source/stratosphere folder into build/
-Run build.sh +> ⚡ *Higher (potentially dangerous) frequencies are unlockable.* +> ⚙️ *Exact maximum values vary per console.* -To build the configurator, cd into Source/Configurator
-Run build.bat or run "python -m PyInstaller --onefile --add-data "assets;assets" --icon=assets/icon.ico --noconsole src/main.py"
+--- +## 🧩 Installation + +1. Ensure you have the latest versions of + + * [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere) + * [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) +2. Download the latest **hoc.kip** file from the [Releases](../../releases) tab. +3. If using **Hekate**, edit `hekate_ipl.ini` to include: + + ``` + kip1=atmosphere/kips/* + ``` + + *(No changes needed if using fusee.)* +4. Download and extract the **Horizon OC sysmodule** to the root of your SD card. +5. Alternatively, use the **Configurator** and click the **Install** buttons for automatic setup. + +--- + +## ⚙️ Configuration + +1. Download the latest **Configurator** on your computer. +2. Run the executable. +3. Select your SD card or UMS drive. +4. Adjust overclocking settings as desired. +5. Click **Save** to apply your configuration. + +--- + +## 🧱 Building from Source + +1. Set up a development environment for compiling **Atmosphere**. +2. Clone Atmosphere: + + ```bash + git clone https://github.com/Atmosphere-NX/Atmosphere.git + ``` +3. Move the cloned folder into `build/`. +4. Insert your `Source/stratosphere` folder into `build/`. +5. Run: + + ```bash + ./build.sh + ``` + +To build the Configurator: + +```bash +cd Source/Configurator +build.bat +# or +python -m PyInstaller --onefile --add-data "assets;assets" --icon=assets/icon.ico --noconsole src/main.py +``` + +--- + +## 💎 Credits + +* **Lightos** & **Dominatorul** – RAM timings +* **KazushiMe** & **meha** – Switch-OC-Suite +* **sys-clk team** – sys-clk +* **b0rd2death** – Ultrahand sys-clk fork +* **Lightos** & **Sammybigio2011** – Early testing -## Credits -Lightos for RAM timings
-KazushiMe and meha for Switch-Oc-Suite
-sys-clk team for sys-clk
-b0rd2death for Ultrahand sys-clk fork
-Lightos and Sammybigio2011 for early testing