Scene.set() JS lifecycle, UI sprite caching, emulator test scripts
- 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>
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
FROM ghcr.io/extremscorner/libogc2
|
||||
WORKDIR /workdir
|
||||
RUN apt update && \
|
||||
dkp-pacman -Syu --noconfirm && \
|
||||
apt install -y python3 python3-pip python3-polib python3-pil python3-dotenv python3-pyqt5 python3-opengl xorriso dolphin-emu xvfb && \
|
||||
dkp-pacman -S --needed --noconfirm gamecube-sdl2 ppc-liblzma ppc-libzip libogc2 gamecube-tools ppc-libmad ppc-zlib-ng ppc-liblzma ppc-bzip2 ppc-zstd
|
||||
VOLUME ["/workdir"]
|
||||
@@ -0,0 +1,28 @@
|
||||
FROM pspdev/pspdev:latest
|
||||
WORKDIR /workdir
|
||||
RUN apk add --no-cache \
|
||||
python3 \
|
||||
py3-pip \
|
||||
py3-dotenv \
|
||||
git \
|
||||
cmake \
|
||||
make \
|
||||
g++ \
|
||||
sdl2-dev \
|
||||
zlib-dev \
|
||||
linux-headers
|
||||
|
||||
# PPSSPP has no Alpine/Linux distro package -- build the "PPSSPPHeadless"
|
||||
# target (the CLI/no-window build PPSSPP's own CI uses for automated runs)
|
||||
# from source instead. The target name and exact CMake options have moved
|
||||
# around across PPSSPP versions -- if this breaks, check
|
||||
# https://github.com/hrydgard/ppsspp's CMakeLists.txt for the current name.
|
||||
RUN git clone --recursive --depth 1 \
|
||||
https://github.com/hrydgard/ppsspp.git /opt/ppsspp && \
|
||||
cd /opt/ppsspp && \
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release && \
|
||||
cmake --build build --target PPSSPPHeadless -- -j$(nproc) && \
|
||||
cp build/PPSSPPHeadless /usr/local/bin/PPSSPPHeadless && \
|
||||
rm -rf /opt/ppsspp
|
||||
|
||||
VOLUME ["/workdir"]
|
||||
Reference in New Issue
Block a user