ac8023d50fff65038f8fb499d9b10b6ef2843941
The reader+player two-thread design (previous commit) still crackled - both threads shared the same elevated real-time priority and could contend for the PSP's single core right at the moment the player thread needed to resume after its blocking output call returned, worse the bigger the hardware chunk. Confirmed fixed on real hardware (Memory Stick and pspsh) by removing the second real-time thread entirely. PCM data now lives in a ring buffer topped up from the MAIN thread once per engine Update(), mirroring dusklinux's own already-working audioStreamLinuxFeed()/IsFinished() pattern (same lead/window sizing) instead of a bespoke second thread. The sole remaining PSP-specific thread only drains the ring and calls sceAudioOutputPannedBlocking(), never touching the asset/PCM layer. Loop wraps are now just a transparent seek-and-continue while filling the ring (it holds one seamless sample stream, no per-chunk splicing needed) - a small FIFO of loop markers is the only thing still needed to fire onLoop at the correct audible moment. 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.3%
JavaScript
4.1%
Python
3.4%
CMake
3.3%
HTML
0.9%
Other
1%