Building & Running¶
Build Pipeline¶
When you click BUILD & RUN, SplashEdit runs this pipeline:
- Lua Compilation - All Lua scripts are extracted and compiled to bytecode using a PS1-based Lua compiler (luac_psx). This runs headlessly in PCSX-Redux.
- Scene Export - Each scene in the scene list is exported to a
.splashpackbinary file. Loading screens are exported as.loadingfiles. - Manifest Generation - A
manifest.binlisting all scenes is written. - Native Compilation - The psxsplash C++ runtime is compiled with your configuration.
- Launch - The compiled executable and data are sent to the target.
Build Targets¶
Emulator (PCSX-Redux)¶
- Launches PCSX-Redux with the compiled PS-EXE
- Scene files served via PCdrv (virtual filesystem)
- Console output visible in the PSX Console window
- Best for development and testing
Real Hardware¶
- Uploads the PS-EXE to a real PS1 via Unirom and serial
- Files served via PCdrv over serial
- Requires a serial connection and Unirom-compatible setup (DEBG kernel)
ISO¶
- Generates a
.bin/.cuedisc image with SYSTEM.CNF - Includes the executable, all splashpacks, loading packs, and manifest
- Ready to burn to disc or load in any emulator
- For distribution
Default license file
If you don't provide a custom license file, the ISO uses a built-in modified license that displays "Made with psxsplash" on boot. You can replace this with your own .dat license file in the build settings.
Build Configuration¶
| Setting | Effect |
|---|---|
| Debug mode | Includes debug symbols, less optimization |
| Release mode | Full optimization, smaller binary |
| Clean Build | Runs make clean first (slower but ensures clean state) |
| Memory Overlay | Shows RAM usage bar at runtime |
| FPS Overlay | Shows frame counter at runtime |
OT Size and Bump Alloc Size¶
These two settings control the trade-off between rendering capacity and memory:
OT Size (Ordering Table)¶
The ordering table determines depth sorting resolution. Each entry is a depth bucket for polygon sorting. The PS1 GPU draws back-to-front using this table.
- Larger = finer Z-sorting, less Z-fighting, but more RAM
- Smaller = coarser sorting, possible visual overlap, but frees RAM
- Default: 8192
Bump Alloc Size¶
The per-frame GPU command buffer. Every triangle, line, and UI element uses space here.
- Larger = more visible polygons per frame
- Smaller = frees RAM for Lua and game data, but triangles silently disappear when the buffer fills
Warning
If triangles disappear at certain camera angles (where more geometry is visible), your bump allocator is probably too small. Increase this setting.
Default: 129536
Build Output¶
The build process creates files in [Unity Project]/PSXBuild/:
| File | Purpose |
|---|---|
scene_0.splashpack |
Scene 0 data |
scene_0.loading |
Scene 0 loading screen (if assigned) |
manifest.bin |
Scene list metadata |
psxsplash.ps-exe |
Compiled PS1 executable |
lua_src/ |
Extracted Lua source files |
lua_compiled/ |
Compiled Lua bytecode |
build.log |
Make output (on failure) |
psxsplash.bin/.cue |
ISO output (ISO target only) |