8f8fa8f8d1
- Add Scene.set(module) so JerryScript can switch scenes via
require()'d {init, update, dispose} modules; wire it into
engineUpdate() and rework overworldscene.js/init.js to the new shape.
- Fix scriptManagerExecFile() never pushing its own file's directory
onto the require() dir stack, breaking relative require() calls from
a top-level entry script (e.g. init.js -> ./overworldscene.js).
- Cache sprite geometry across frames for uislider/uitab/uiframe
(dialogs/textbox/settings) and give uitextbox a per-page glyph cache
instead of one spriteBatchBuffer call per visible character. uiconsole
drops its alloc/free vertex buffer for a fixed-size one. uifps skips
rebuilding its label when the text hasn't changed.
- Add PSP_OPTIMIZATION_PLAN.md and a handful of UI/spritebatch unit
tests covering the new caching logic.
- Add Dolphin/PPSSPP emulator smoke-test scripts (+ Docker variants and
CI jobs) for GameCube/Wii/PSP.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
107 lines
3.6 KiB
YAML
107 lines
3.6 KiB
YAML
name: Test Dusk
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
jobs:
|
|
run-tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
build-essential \
|
|
cmake \
|
|
python3 \
|
|
python3-pip \
|
|
python3-polib \
|
|
python3-pil \
|
|
libsdl2-dev \
|
|
libgl1-mesa-dev \
|
|
libzip-dev \
|
|
python3-dotenv \
|
|
python3-pyqt5 \
|
|
python3-opengl \
|
|
xz-utils \
|
|
liblzma-dev \
|
|
libbz2-dev \
|
|
zlib1g-dev \
|
|
git \
|
|
libssl-dev
|
|
- name: Run tests
|
|
run: ./scripts/test-linux.sh
|
|
|
|
# Emulator smoke tests: boot the built disc/EBOOT for a fixed window and
|
|
# confirm the emulator doesn't crash. Not yet verified against a real
|
|
# runner (no CI run has exercised these) -- continue-on-error so a
|
|
# flaky/broken emulator step doesn't block the required Linux test job.
|
|
run-tests-gamecube-dolphin:
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: true
|
|
container:
|
|
image: ghcr.io/extremscorner/libogc2:latest
|
|
steps:
|
|
- name: Install Node.js
|
|
run: apt-get update && apt-get install -y nodejs
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Install additional dependencies
|
|
run: |
|
|
apt-get install -y \
|
|
python3-pip python3-polib python3-pil \
|
|
python3-dotenv python3-pyqt5 python3-opengl xorriso \
|
|
dolphin-emu xvfb
|
|
dkp-pacman -Syu --noconfirm
|
|
dkp-pacman -S --needed --noconfirm \
|
|
gamecube-sdl2 ppc-liblzma ppc-libzip \
|
|
gamecube-tools ppc-libmad ppc-zlib-ng ppc-bzip2 ppc-zstd
|
|
- name: Build GameCube ISO and boot it in Dolphin
|
|
run: ./scripts/test-gamecube-dolphin.sh
|
|
|
|
run-tests-wii-dolphin:
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: true
|
|
container:
|
|
image: ghcr.io/extremscorner/libogc2:latest
|
|
steps:
|
|
- name: Install Node.js
|
|
run: apt-get update && apt-get install -y nodejs
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Install additional dependencies
|
|
run: |
|
|
apt-get install -y \
|
|
python3-pip python3-polib python3-pil \
|
|
python3-dotenv python3-pyqt5 python3-opengl xorriso \
|
|
dolphin-emu xvfb
|
|
dkp-pacman -Syu --noconfirm
|
|
dkp-pacman -S --needed --noconfirm \
|
|
gamecube-sdl2 ppc-liblzma ppc-libzip \
|
|
gamecube-tools ppc-libmad ppc-zlib-ng ppc-bzip2 ppc-zstd
|
|
- name: Build Wii ISO and boot it in Dolphin
|
|
run: ./scripts/test-wii-dolphin.sh
|
|
|
|
run-tests-psp-ppsspp:
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: true
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Setup pspdev
|
|
uses: ./.github/actions/setup-pspdev
|
|
- name: Install PPSSPPHeadless build dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y git cmake ninja-build libsdl2-dev zlib1g-dev
|
|
- name: Build PPSSPPHeadless
|
|
run: |
|
|
git clone --recursive --depth 1 https://github.com/hrydgard/ppsspp.git /tmp/ppsspp
|
|
cmake -S /tmp/ppsspp -B /tmp/ppsspp/build -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build /tmp/ppsspp/build --target PPSSPPHeadless -- -j$(nproc)
|
|
echo "PPSSPP_HEADLESS_BIN=/tmp/ppsspp/build/PPSSPPHeadless" >> "$GITHUB_ENV"
|
|
- name: Build PSP EBOOT and boot it in PPSSPPHeadless
|
|
run: ./scripts/test-psp-ppsspp.sh
|