diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml index dd9cc1b71c3..63043796d01 100644 --- a/.github/workflows/ci-workflow.yml +++ b/.github/workflows/ci-workflow.yml @@ -17,16 +17,11 @@ on: description: 'Run 3DS tests' required: true default: 'yes' - triggerFxcg: - description: 'Run fxcg tests' - required: true - default: 'no' jobs: - fxcg: # fxcg build is broken for now, disabling it for now to avoid noise - if: github.event.inputs.triggerFxcg == 'yes' + fxcg: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: 'recursive' - name: Install dependencies @@ -41,7 +36,7 @@ jobs: id: get-latest-commit-hash - name: Cache gint/fxsdk installation id: cache-gint - uses: actions/cache@v4 + uses: actions/cache@main with: path: | ~/.local/*/* @@ -49,13 +44,10 @@ jobs: key: ${{ runner.os }}-gint-${{ steps.get-latest-commit-hash.outputs.LATEST_COMMIT_HASH }} - name: Install gint/fxsdk if: steps.cache-gint.outputs.cache-hit != 'true' - env: - URL: "https://git.planet-casio.com/Lephenixnoir/GiteaPC/archive/master.tar.gz" run: | export PATH="~/.local/bin:$PATH" cd "$(mktemp -d)" - curl "$URL" -o giteapc-master.tar.gz - tar -xzf giteapc-master.tar.gz + git clone https://git.planet-casio.com/Lephenixnoir/GiteaPC.git giteapc cd giteapc python3 giteapc.py install Lephenixnoir/GiteaPC -y sudo apt-get install python3-pil libusb-1.0-0-dev libudev-dev libsdl2-dev libpng-dev libudisks2-dev libglib2.0-dev libmpfr-dev libmpc-dev libppl-dev -y @@ -64,9 +56,10 @@ jobs: giteapc install Lephenixnoir/gint -y - name: Add fxsdk to PATH run: echo "~/.local/bin" >> $GITHUB_PATH + - run: sed -i "/GINT_RENDER_RGB/d" ~/.local/share/fxsdk/sysroot/sh3eb-elf/include/gint/display-cg.h # WORKAROUND - run: make -j2 PLATFORM=simulator TARGET=fxcg - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -84,38 +77,39 @@ jobs: git pull git commit -m "Update from CI" git push - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon.g3a path: output/release/simulator/fxcg/epsilon.g3a nintendo_3ds: if: github.event.inputs.trigger3DS == 'yes' || github.event.inputs.trigger3DS == '' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm container: devkitpro/devkitarm:latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: true - run: sudo apt-get update - run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config -y - run: yes | sudo dkp-pacman -S --needed devkitARM 3dstools libctru - - run: wget https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.18.3/makerom-v0.18.3-ubuntu_x86_64.zip - - run: unzip makerom-v0.18.3-ubuntu_x86_64.zip - - run: rm makerom-v0.18.3-ubuntu_x86_64.zip - - run: chmod +x ./makerom + - name: Compile makerom from source + run: | + git clone https://github.com/3DSGuy/Project_CTR.git + make -C Project_CTR + mv Project_CTR/makerom/bin/makerom . - run: echo "PATH=.:$PATH" >> $GITHUB_ENV - run: make -j2 PLATFORM=simulator TARGET=3ds - run: make -j2 PLATFORM=simulator TARGET=3ds epsilon.cia - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-3ds.3dsx path: output/release/simulator/3ds/epsilon.3dsx - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-3ds.cia path: output/release/simulator/3ds/epsilon.cia - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -136,22 +130,22 @@ jobs: android: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: 'recursive' - run: | sudo apt-get update sudo apt-get install imagemagick libfreetype-dev libpng-dev - name: Set up JDK 25 - uses: actions/setup-java@v5 + uses: actions/setup-java@main with: java-version: '25' distribution: 'temurin' - - run: wget -nv https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip - - run: unzip -q android-ndk-r21e-linux-x86_64.zip - - run: make -j2 PLATFORM=simulator TARGET=android NDK_PATH=./android-ndk-r21e + - run: wget -nv https://dl.google.com/android/repository/android-ndk-r27d-linux.zip + - run: unzip -q android-ndk-r27d-linux.zip + - run: make -j2 PLATFORM=simulator TARGET=android NDK_PATH=./android-ndk-r27d - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -169,7 +163,7 @@ jobs: git pull git commit -m "Update from CI" git push - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-android.apk path: output/release/simulator/android/epsilon.apk @@ -179,7 +173,7 @@ jobs: - run: | sudo apt-get update sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config gcc-arm-none-eabi binutils-arm-none-eabi - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: 'recursive' - run: mkdir final-output @@ -222,12 +216,12 @@ jobs: - run: mv output/release/device/n0100/flasher.verbose.bin final-output/flasher.verbose.bin - run: find final-output/ -type f -exec bash -c "shasum -a 256 -b {} > {}.sha256" \; - run: tar cvfz binpack-n0100.tgz final-output/* - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-binpack-n0100.tgz path: binpack-n0100.tgz - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -251,7 +245,7 @@ jobs: - run: | sudo apt-get update sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config gcc-arm-none-eabi binutils-arm-none-eabi - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: 'recursive' - run: make -j2 MODEL=n0110 epsilon.dfu @@ -268,12 +262,12 @@ jobs: - run: cp output/release/device/n0110/flasher.verbose.bin output/release/device/n0110/binpack/ - run: cd output/release/device/n0110 && for binary in *.bin; do shasum -a 256 -b binpack/${binary} > binpack/${binary}.sha256;done - run: cp output/release/device/n0110/binpack-n0110-`git rev-parse HEAD | head -c 7`.tgz output/release/device/n0110/binpack/binpack.tgz - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-binpack-n0110.tgz path: output/release/device/n0110/binpack-n0110.tgz - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -297,7 +291,7 @@ jobs: - run: | sudo apt-get update sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config gcc-arm-none-eabi binutils-arm-none-eabi - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: 'recursive' - run: make -j2 MODEL=n0110 bootloader @@ -314,12 +308,12 @@ jobs: - run: cp output/release/device/n0110/bootloader.bin output/release/device/bootloader/ - run: cd output/release/device/bootloader && for binary in *.bin; do shasum -a 256 -b binpack/${binary} > binpack/${binary}.sha256;done - run: cd output/release/device/bootloader && tar cvfz binpack-bootloader.tgz binpack/* - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-binpack-bootloader.tgz path: output/release/device/bootloader/binpack-bootloader.tgz - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -344,7 +338,7 @@ jobs: shell: msys2 {0} steps: - uses: msys2/setup-msys2@v2 - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: 'recursive' - run: pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-freetype mingw-w64-x86_64-pkg-config make mingw-w64-x86_64-python3 mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-libpng git @@ -352,7 +346,7 @@ jobs: - run: make -j2 PLATFORM=simulator test.exe - run: cmd /c output\release\simulator\windows\test.exe --headless - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -370,20 +364,21 @@ jobs: git pull git commit -m "Update from CI" git push - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-windows.exe path: output/release/simulator/windows/epsilon.exe web: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm steps: - - uses: numworks/setup-emscripten@master + - name: Setup emsdk + uses: emscripten-core/setup-emsdk@main with: - sdk: latest - - uses: actions/checkout@v4 + version: 4.0.22 # TODO: Fix for latest releases of Emscripten + - uses: actions/checkout@main with: submodules: 'recursive' - # Install the Linux toolchin to avoid dependancies issues, but maybe only libpng is needed + # Install the Linux toolchain to avoid dependancies issues, but maybe only libpng is needed - run: | sudo apt-get update sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config libxtst-dev @@ -391,7 +386,7 @@ jobs: - run: make -j2 PLATFORM=simulator TARGET=web test.js - run: node output/release/simulator/web/test.js --headless - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -409,7 +404,7 @@ jobs: git pull git commit -m "Update from CI" git push - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-web.zip path: output/release/simulator/web/epsilon.zip @@ -419,14 +414,14 @@ jobs: - run: | sudo apt-get update sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config libxtst-dev - - uses: actions/checkout@v5 + - uses: actions/checkout@main with: submodules: 'recursive' - run: make -j2 PLATFORM=simulator - run: make -j2 PLATFORM=simulator test.bin - run: output/release/simulator/linux/test.bin --headless - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -444,7 +439,7 @@ jobs: git pull git commit -m "Update from CI" git push - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-linux.bin path: output/release/simulator/linux/epsilon.bin @@ -452,20 +447,22 @@ jobs: if: github.event.inputs.triggerMacos == 'yes' || github.event.inputs.triggerMacos == '' runs-on: macOS-latest steps: - - run: brew install python-setuptools - - run: brew install numworks/tap/epsilon-sdk - - uses: actions/checkout@v5 + - run: | + brew install imagemagick + python3 -m venv .venv + .venv/bin/pip3 install setuptools lz4 pypng stringcase + - uses: actions/checkout@main with: submodules: 'recursive' - run: make -j2 PLATFORM=simulator - run: make -j2 PLATFORM=simulator ARCH=x86_64 test.bin - run: output/release/simulator/macos/x86_64/test.bin --headless - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-macos.zip path: output/release/simulator/macos/epsilon.app - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' @@ -485,21 +482,23 @@ jobs: git push ios: if: github.event.inputs.triggerIos == 'yes' || github.event.inputs.triggerIos == '' - runs-on: macos-14 + runs-on: macos-14 # TODO: Fix for macos-latest runners steps: - - run: brew install python-setuptools - - run: brew install numworks/tap/epsilon-sdk - - uses: actions/checkout@v5 + - run: | + brew install imagemagick + python3 -m venv .venv + .venv/bin/pip3 install setuptools lz4 pypng stringcase + - uses: actions/checkout@main with: submodules: 'recursive' - run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 - run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 APPLE_PLATFORM=ios-simulator - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@main with: name: epsilon-ios.ipa path: output/release/simulator/ios/epsilon.ipa - if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }} - uses: actions/checkout@v5 + uses: actions/checkout@main with: repository: Yaya-Cout/Upsilon-binfiles ref: 'main' diff --git a/.github/workflows/metric-workflow.yml b/.github/workflows/metric-workflow.yml index afa04ab61cb..9c22ab3db9c 100644 --- a/.github/workflows/metric-workflow.yml +++ b/.github/workflows/metric-workflow.yml @@ -6,11 +6,11 @@ jobs: runs-on: ubuntu-24.04-arm steps: - name: Install dependencies - run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config + run: sudo apt-get update && sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config - name: Install ARM toolchain run: sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi - name: Checkout PR base - uses: actions/checkout@v5 + uses: actions/checkout@main with: submodules: recursive ref: ${{ github.event.pull_request.base.sha }} @@ -18,7 +18,7 @@ jobs: - name: Build base run: make -j2 -C base MODEL=n0110 epsilon.elf - name: Checkout PR head - uses: actions/checkout@v5 + uses: actions/checkout@main with: submodules: recursive ref: ${{ github.event.pull_request.head.sha }} @@ -34,7 +34,7 @@ jobs: echo EOF } >> "$GITHUB_ENV" - name: Add comment - uses: actions/github-script@v8 + uses: actions/github-script@v9 with: script: | await github.rest.issues.createComment({ diff --git a/README.fr.md b/README.fr.md index 4d89dda95ee..a8d87a39c2c 100644 --- a/README.fr.md +++ b/README.fr.md @@ -1,8 +1,8 @@ -

+

cc by-nc-sa 4.0 - Issues + Issues
Discord

@@ -106,7 +106,9 @@ nix-env -p gcc libpng libjpeg xorg.libX11 pkg-config freetype xorg.libXext pytho Il est recommandé d'utiliser [Homebrew](https://brew.sh/). Une fois installé, utilisez : ```bash -brew install numworks/tap/epsilon-sdk +brew install freetype imagemagick libpng libusb pkg-config python3 +python3 -m venv .venv +.venv/bin/pip3 install setuptools lz4 pypng stringcase ``` Et toutes les dépendances seront installées. @@ -398,8 +400,8 @@ D'abord, installez emsdk : ```bash git clone https://github.com/emscripten-core/emsdk.git cd emsdk -./emsdk install 1.40.1 -./emsdk activate 1.40.1 +./emsdk install 4.0.22 +./emsdk activate 4.0.22 source emsdk_env.sh ``` @@ -419,18 +421,18 @@ Le simulateur se trouve dans `output/release/simulator/web/simulator.zip` Simulateur Android Assurez-vous d'avoir JDK 25 d'installé. -Ensuite, téléchargez la toolchain Android version r21e comme suit : +Ensuite, téléchargez la toolchain Android version r27d comme suit : ``` export ANDROID_HOME=$PWD/android-sdk wget -nv https://gitlab.com/fdroid/sdkmanager/-/raw/master/sdkmanager.py python3 sdkmanager.py --licenses -python3 sdkmanager.py --install "ndk-bundle;r21e" +python3 sdkmanager.py --install "ndk-bundle;r27d" ``` Il ne vous reste plus qu'à lancer cette commande pour compiler Upsilon. ``` make -j$(nproc) PLATFORM=simulator TARGET=android ``` -Le fichier compilé nommé `epsilon.apk` sera celui à installer sur le téléphone depuis votre gestionnaire de fichier. Fonctionne normalement à partir de Android 4. +Le fichier compilé nommé `epsilon.apk` sera celui à installer sur le téléphone depuis votre gestionnaire de fichier. Fonctionne normalement à partir de Android 5. diff --git a/README.md b/README.md index d1a97deeebe..1cf434bc404 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

cc by-nc-sa 4.0 @@ -110,10 +110,12 @@ nix-shell -p gcc libpng libjpeg xorg.libX11 pkg-config freetype xorg.libXext pyt It's recommended to use [Homebrew](https://brew.sh/). Once it's installed, just run: ```bash -brew install numworks/tap/epsilon-sdk +brew install freetype imagemagick libpng libusb pkg-config python3 +python3 -m venv .venv +.venv/bin/pip3 install setuptools lz4 pypng stringcase ``` -and it will install all dependencies. +and all dependencies will be installed.
@@ -405,8 +407,8 @@ First, install emsdk : ```bash git clone https://github.com/emscripten-core/emsdk.git cd emsdk -./emsdk install 1.40.1 -./emsdk activate 1.40.1 +./emsdk install 4.0.22 +./emsdk activate 4.0.22 source emsdk_env.sh ``` @@ -447,18 +449,18 @@ You can then put epsilon.3dsx on a SD card to run it from the HBC or use 3dslink

Android Simulator Make sure you have JDK 25 installed. -Then, download the Android toolchain r21e as following : +Then, download the Android toolchain r27d as following : ``` export ANDROID_HOME=$PWD/android-sdk wget -nv https://gitlab.com/fdroid/sdkmanager/-/raw/master/sdkmanager.py python3 sdkmanager.py --licenses -python3 sdkmanager.py --install "ndk-bundle;r21e" +python3 sdkmanager.py --install "ndk-bundle;r27d" ``` All you have to do is run this command to compile Upsilon. ``` make -j$(nproc) PLATFORM=simulator TARGET=android ``` -The compiled file named `epsilon.apk` will be the one to install on the phone from your file manager. Shoudl work on Android 4.1+. +The compiled file named `epsilon.apk` will be the one to install on the phone from your file manager. Should work on Android 5+. @@ -470,7 +472,7 @@ First, install gint and fxsdk along with a cross compiler for the calculator. Th Next: ```bash git clone --recursive https://github.com/UpsilonNumworks/Upsilon.git -cd Omega +cd Upsilon git checkout upsilon-dev make PLATFORM=simulator TARGET=fxcg -j$(nproc) ``` diff --git a/build/toolchain.android.mak b/build/toolchain.android.mak index c22cfd1b32b..767687c6e19 100644 --- a/build/toolchain.android.mak +++ b/build/toolchain.android.mak @@ -9,22 +9,16 @@ endif NDK_TOOLCHAIN_PATH = $(NDK_PATH)/toolchains/llvm/prebuilt/$(NDK_HOST_TAG)/bin -# No 64 bit device has ever shipped with an API level < 21. Consequently, there -# is no toolchain for those archs on those API levels. Let's enforce NDK_VERSION -# at 21 for these archs, and 16 for the others. +NDK_VERSION = 21 ifeq ($(ARCH),armeabi-v7a) NDK_TARGET = armv7a-linux-androideabi - NDK_VERSION = 16 else ifeq ($(ARCH),arm64-v8a) NDK_TARGET = aarch64-linux-android - NDK_VERSION = 21 else ifeq ($(ARCH),x86) NDK_TARGET = i686-linux-android - NDK_VERSION = 16 else ifeq ($(ARCH),x86_64) NDK_TARGET = x86_64-linux-android - NDK_VERSION = 21 endif ifdef NDK_TARGET diff --git a/ion/src/shared/storage.cpp b/ion/src/shared/storage.cpp index 0a77cfa39aa..7369d02ca7e 100644 --- a/ion/src/shared/storage.cpp +++ b/ion/src/shared/storage.cpp @@ -6,7 +6,11 @@ namespace Ion { +#ifdef __APPLE__ +uint32_t __attribute__((section("__DATA,.static_storage"))) staticStorageArea[sizeof(Storage)/sizeof(uint32_t)] = {0}; +#else uint32_t __attribute__((section(".static_storage"))) staticStorageArea[sizeof(Storage)/sizeof(uint32_t)] = {0}; +#endif Storage * Storage::sharedStorage() { static Storage * storage = new (staticStorageArea) Storage(); diff --git a/ion/src/simulator/3ds/assets/banner.png b/ion/src/simulator/3ds/assets/banner.png index 4ba5507e98f..48637e35e79 100644 Binary files a/ion/src/simulator/3ds/assets/banner.png and b/ion/src/simulator/3ds/assets/banner.png differ diff --git a/ion/src/simulator/3ds/assets/icon.icn b/ion/src/simulator/3ds/assets/icon.icn index 326fa77bf07..6bd613fb634 100644 Binary files a/ion/src/simulator/3ds/assets/icon.icn and b/ion/src/simulator/3ds/assets/icon.icn differ diff --git a/ion/src/simulator/3ds/assets/logo.png b/ion/src/simulator/3ds/assets/logo.png index 8e088118d07..f58cf90bf1f 100644 Binary files a/ion/src/simulator/3ds/assets/logo.png and b/ion/src/simulator/3ds/assets/logo.png differ diff --git a/ion/src/simulator/3ds/assets/logo24.png b/ion/src/simulator/3ds/assets/logo24.png index fe08054d8ab..2dc71e4d876 100644 Binary files a/ion/src/simulator/3ds/assets/logo24.png and b/ion/src/simulator/3ds/assets/logo24.png differ diff --git a/ion/src/simulator/android/build.gradle b/ion/src/simulator/android/build.gradle index bae0bbbcb9a..350e0eab144 100644 --- a/ion/src/simulator/android/build.gradle +++ b/ion/src/simulator/android/build.gradle @@ -16,7 +16,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.0' + classpath 'com.android.tools.build:gradle:9.2.0' } } @@ -32,12 +32,11 @@ apply plugin: 'com.android.application' android { namespace = "io.github.upsilon.simulator" - compileSdkVersion 36 + compileSdkVersion 37 defaultConfig { applicationId "io.github.upsilon.simulator" - minSdkVersion 16 + minSdkVersion 21 targetSdkVersion 33 - def d=new Date() versionCode Instant.now().getEpochSecond().toInteger() versionName LocalDate.now().format("yyyyMMdd")+'-'+System.getenv('UPSILON_VERSION') } @@ -52,7 +51,7 @@ android { buildTypes { release { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt') + //proguardFiles getDefaultProguardFile('proguard-android.txt') if (projectVariable('SIGNING_STORE_FILE')) { signingConfig = signingConfigs.environment } else { @@ -73,12 +72,15 @@ android { abortOnError = false checkReleaseBuilds = false } + compileOptions { // currently Kotlin JVM doesn't support target 25 + sourceCompatibility JavaVersion.VERSION_24 + targetCompatibility JavaVersion.VERSION_24 + } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation "androidx.appcompat:appcompat:1.6.0" - implementation(platform("org.jetbrains.kotlin:kotlin-bom:2.2.21")) + implementation "androidx.appcompat:appcompat:1.7.1" } java{toolchain{languageVersion=JavaLanguageVersion.of(25)}} diff --git a/ion/src/simulator/android/gradle.properties b/ion/src/simulator/android/gradle.properties index dbb7bf70d15..5bac8ac5046 100644 --- a/ion/src/simulator/android/gradle.properties +++ b/ion/src/simulator/android/gradle.properties @@ -1,2 +1 @@ -android.enableJetifier=true android.useAndroidX=true diff --git a/ion/src/simulator/android/gradle/wrapper/gradle-wrapper.properties b/ion/src/simulator/android/gradle/wrapper/gradle-wrapper.properties index 6db27b7f298..92ffa27d3b2 100644 --- a/ion/src/simulator/android/gradle/wrapper/gradle-wrapper.properties +++ b/ion/src/simulator/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/ion/src/simulator/external/sdl/src/render/opengles2/SDL_gles2funcs.h b/ion/src/simulator/external/sdl/src/render/opengles2/SDL_gles2funcs.h index 34bfb81c36b..e0de76e78f1 100644 --- a/ion/src/simulator/external/sdl/src/render/opengles2/SDL_gles2funcs.h +++ b/ion/src/simulator/external/sdl/src/render/opengles2/SDL_gles2funcs.h @@ -54,10 +54,10 @@ SDL_PROC(void, glPixelStorei, (GLenum, GLint)) SDL_PROC(void, glReadPixels, (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid*)) SDL_PROC(void, glScissor, (GLint, GLint, GLsizei, GLsizei)) SDL_PROC(void, glShaderBinary, (GLsizei, const GLuint *, GLenum, const void *, GLsizei)) -#if __NACL__ || __ANDROID__ -SDL_PROC(void, glShaderSource, (GLuint, GLsizei, const GLchar **, const GLint *)) -#else +#if __NACL__ || __ANDROID__ || __APPLE__ SDL_PROC(void, glShaderSource, (GLuint, GLsizei, const GLchar* const*, const GLint *)) +#else +SDL_PROC(void, glShaderSource, (GLuint, GLsizei, const GLchar **, const GLint *)) #endif SDL_PROC(void, glTexImage2D, (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const void *)) SDL_PROC(void, glTexParameteri, (GLenum, GLenum, GLint)) diff --git a/ion/src/simulator/external/sdl/src/sensor/android/SDL_androidsensor.c b/ion/src/simulator/external/sdl/src/sensor/android/SDL_androidsensor.c index 06fe6f5e5bb..9bb05fe48fd 100644 --- a/ion/src/simulator/external/sdl/src/sensor/android/SDL_androidsensor.c +++ b/ion/src/simulator/external/sdl/src/sensor/android/SDL_androidsensor.c @@ -162,7 +162,7 @@ SDL_ANDROID_SensorUpdate(SDL_Sensor *sensor) ASensorEvent event; struct android_poll_source* source; - if (ALooper_pollAll(0, NULL, &events, (void**)&source) == LOOPER_ID_USER) { + if (ALooper_pollOnce(0, NULL, &events, (void**)&source) == LOOPER_ID_USER) { SDL_zero(event); while (ASensorEventQueue_getEvents(sensor->hwdata->eventqueue, &event, 1) > 0) { SDL_PrivateSensorUpdate(sensor, event.data, SDL_arraysize(event.data)); diff --git a/ion/src/simulator/fxcg/Makefile b/ion/src/simulator/fxcg/Makefile index 02a9ed71776..c82a4f3abc8 100644 --- a/ion/src/simulator/fxcg/Makefile +++ b/ion/src/simulator/fxcg/Makefile @@ -56,7 +56,7 @@ ion_src := $(filter-out $(sdl_simu_needs_to_be_removed),$(ion_src)) SFLAGS := $(filter-out -Iion/src/simulator/external/sdl/include,$(SFLAGS)) -SFLAGS += -DFXCG50 -DTARGET_FXCG50 -m4-nofpu -mb -ffreestanding -nostdlib -Wa,--dsp -fstrict-volatile-bitfields -g -Os +SFLAGS += -DFXCG50 -DTARGET_FXCG50 -m4-nofpu -mb -nostdlib -Wa,--dsp -fstrict-volatile-bitfields -g -Os LDFLAGS += -nostdlib -Wl,--no-warn-rwx-segments -lgint-cg -lc -lgint-cg -lc -lgcc -lopenlibm -lstdc++ -lgcc ifdef FASTLOAD diff --git a/python/port/port.cpp b/python/port/port.cpp index 93a35dbccf3..64e41a2f5e4 100644 --- a/python/port/port.cpp +++ b/python/port/port.cpp @@ -420,11 +420,6 @@ void nlr_jump_fail(void *val) { #if defined _FXCG || defined NSPIRE_NEWLIB -void do_mp_lexer_new_from_file(const char * filename,mp_lexer_t ** res) { - mp_reader_t reader; - mp_reader_new_file(&reader, filename); - *res=mp_lexer_new(qstr_from_str(filename), reader); -} // Code from MicroPython's reader.c #include @@ -439,7 +434,7 @@ typedef struct _mp_reader_posix_t { byte buf[20]; } mp_reader_posix_t; -STATIC mp_uint_t mp_reader_posix_readbyte(void *data) { +static mp_uint_t mp_reader_posix_readbyte(void *data) { mp_reader_posix_t *reader = (mp_reader_posix_t *)data; if (reader->pos >= reader->len) { if (reader->len == 0) { @@ -459,7 +454,7 @@ STATIC mp_uint_t mp_reader_posix_readbyte(void *data) { return reader->buf[reader->pos++]; } -STATIC void mp_reader_posix_close(void *data) { +static void mp_reader_posix_close(void *data) { mp_reader_posix_t *reader = (mp_reader_posix_t *)data; if (reader->close_fd) { MP_THREAD_GIL_EXIT(); @@ -498,6 +493,12 @@ void mp_reader_new_file(mp_reader_t *reader, const char *filename) { } mp_reader_new_file_from_fd(reader, fd, true); } + +void do_mp_lexer_new_from_file(const char * filename,mp_lexer_t ** res) { + mp_reader_t reader; + mp_reader_new_file(&reader, filename); + *res=mp_lexer_new(qstr_from_str(filename), reader); +} #endif mp_lexer_t * mp_lexer_new_from_file(qstr file_qstr) {