PlayStation 1 Development

Build PS1 Games
in Unity

Design scenes in Unity's editor. Write game logic in Lua. Export to real PlayStation 1 hardware or emulator with a single click.

Lua Scripting
1-Click Build & Run
Real HW + Emulator
Unity Editor View Unity Editor
PlayStation 1 View PlayStation 1

Drag to compare

Architecture

Two Parts, One Workflow

SplashEdit is a Unity package for editing. psxsplash is the C++ PS1 runtime. You only touch Unity — the rest is automatic.

SplashEdit Unity Package

Editor tools, scene exporters, inspectors, texture quantization, VRAM packing, Lua compilation, and the Control Panel.

  • Scene & object exporters
  • Texture atlas & VRAM manager
  • Cutscene & animation editors
  • UI canvas designer
  • One-click build pipeline
View on GitHub →

psxsplash PS1 Runtime

C++ engine built on PSYQo. Handles rendering, collision, navigation, Lua execution, UI, audio, and scene management on real hardware.

  • GTE-accelerated 3D renderer
  • Room/portal & BVH culling
  • SPU audio playback
  • Embedded Lua VM
  • Navigation mesh traversal
View on GitHub →
Features

Everything You Need

From scene design to disc image — SplashEdit covers the full PS1 development pipeline.

Visual Scene Editing

Place objects, set up rooms, configure portals, and preview your PS1 scene directly in Unity's editor.

Texture Quantization

Automatic Floyd-Steinberg dithering to 4-bit, 8-bit, or 16-bit color. VRAM packing with texture deduplication.

Lua Scripting

Full event-driven scripting API. Entities, camera, UI, audio, cutscenes, persistence, input — all from Lua.

UI System

Canvases with images, text, progress bars, and custom bitmap fonts. Full Lua control over visibility, color, and position.

Cutscenes & Animations

Keyframed tracks with easing. Camera, object, UI, and FOV control. Audio events. Editor preview with scrubbing.

PS1 Audio

Automatic conversion to SPU ADPCM format. 24 simultaneous voices with volume and panning control.

Navigation Mesh

Auto-generated nav mesh via DotRecast. Player walking, collision with static and dynamic objects, trigger volumes.

Room/Portal Culling

Interior occlusion system with per-room cells and indexed portal references. Only visible rooms are rendered.

One-Click Build

Build to PCSX-Redux emulator, real hardware via serial (Unirom), or a full ISO disc image. All from one button.

Multi-Scene

Multiple scenes with seamless loading. Persistent key-value storage survives scene transitions. Loading screens included.

Vertex Color Modes

Choose baked lighting, flat color, or mesh vertex colors per object. Full control over your PS1 art style.

Distance Fog

Silent Hill-style two-pass fog with per-vertex blending and additive overlay. Customizable density and color.

Scripting

Game Logic in Lua

Write all your game logic in Lua with an event-driven architecture. No game loop needed — respond to interactions, collisions, button presses, and timers.

Entity
Camera
Player
Input
UI
Audio
Cutscene
Animation
Scene
Persist
Vec3
Controls
Timer
Debug
Full API Reference →
collectible.lua
local collected = false

function onCollideWithPlayer(self)
    if collected then return end
    collected = true

    -- Hide the object
    Entity.SetActive(self, false)

    -- Play a sound
    Audio.Play("pickup", 100, 64)

    -- Update the score
    addScore(100)
    setStatus("Got it!")
end
Get Started

Up and Running in Minutes

Five steps from zero to a running PS1 game.

1

Install the Package

Download the .tgz from GitHub Releases. In Unity: Package Manager → Add package from tarball.

2

Open the Control Panel

PlayStation 1 → SplashEdit Control Panel (Ctrl+Shift+L). This is your central hub.

3

Install Dependencies

Click "Install" for each tool in the Dependencies tab. SplashEdit downloads the MIPS compiler, Make, PCSX-Redux, and more.

4

Design Your Scene

Add a Scene Exporter, place objects with PSXObjectExporter, set up a player, and add your first room.

5

Build & Run

Hit the BUILD & RUN button. SplashEdit exports, compiles, and launches your game on the emulator.

Emulator

Launch directly in PCSX-Redux with PCdrv file serving. Full debug console output.

Real Hardware

Upload via serial to a real PlayStation 1 with Unirom. PCdrv file serving over the cable.

ISO Disc Image

Generate a .bin/.cue disc image ready to burn or load in any PS1 emulator.

Open Source

Built in the Open

SplashEdit and psxsplash are MIT licensed. Contributions, bug reports, and showcases are all welcome.