2f6839bcc49911796c41ae66a1a6bf8150ce7ef2
Reverting the whole-PSAR buffer (previous commit) reintroduced real read corruption on hardware (EINVAL, then zlib data errors) - but this time it hit an unrelated asset (chunks/1_0_0.dcf) at the same moment as the WAV load, which pointed at concurrency rather than the seek pattern itself: the asset system genuinely calls libzip from three real threads at once (main, the background asset load thread, and PSP's own audio feeder thread), and libzip is documented as not thread-safe. Buffering the whole PSAR "worked" only by accident, since it stopped touching sceIo after init entirely. Adding ASSET.zipLock around every zip_fopen/zip_fread/ zip_fclose/zip_fseek/zip_stat/zip_name_locate call serializes hardware I/O properly without needing the whole archive resident in memory. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Dusk
RPG Game Project, small and able to run on a PSP.
Building
Each build target has different requirements. You can take a look at the git workflow to see how the builds are done for each target. In addition, for accessing the editor and building the game on your host system, install the following packages, depending on your system;
Fedora;
sudo dnf install git make gcc cmake python python-polib python3-pillow python3-dotenv python3-numpy python-qt5 python3-pyopengl SDL2-devel zlib-devel libzip-devel bzip2-devel openssl-devel lzma-sdk-devel xz xz-devel lua-devel
Ubuntu;
sudo apt-get install git build-essential gcc python python-polib python3-pillow python3-dotenv python3-numpy python3-pyqt5 python3-opengl
Arch Linux;
sudo pacman -S git base-devel gcc python python-polib python-pillow python-dotenv python-numpy python-pyqt5 python-opengl
Description
Languages
C
87.2%
JavaScript
4.1%
Python
3.4%
CMake
3.4%
HTML
0.9%
Other
1%