Quick Start: Your First PS1 Scene¶
This walkthrough creates a minimal scene with a floor, an object, and a player. By the end you'll have something running in the emulator.
1. Create a New Project¶
Create a new Unity project using the Universal 3D template. This gives you a Universal Render Pipeline project, which SplashEdit requires.
2. Install SplashEdit¶
Follow the Installation guide to install the SplashEdit package and toolchain.
3. Create a Scene¶
Create a new Unity scene (File -> New Scene).
4. Add a Scene Exporter¶
Go to GameObject -> PlayStation 1 -> Scene Exporter. This adds a GameObject with the PSXSceneExporter component. There can only be one per scene - it's the master controller for the export pipeline.
5. Add a Floor¶
Don't use Unity's built-in Plane
Unity's default Plane is two huge triangles. On the PS1, large polygons cause severe texture warping and will likely get culled entirely. Instead, create your floor geometry in a 3D modeling tool (Blender, etc.) and subdivide it into small quads/triangles. Built-in Unity primitives like Cube can work for simple testing, but avoid Plane, Sphere, Cylinder, and other complex built-in meshes.
- Import a subdivided floor mesh from your 3D tool
- Assign a material with a texture
- Add the
PSXObjectExportercomponent to it - In the component set Collision>Type to Static
Texture Requirements
All textures must be power-of-two in both width and height, and the maximum size is 256x256. Valid sizes: 16x16, 32x32, 64x64, 128x128, 256x256 (and non-square like 64x128). SplashEdit does NOT check this for you - incorrect textures will produce broken results.
6. Add a Player¶
- Create an empty GameObject
- Add the
PSXPlayercomponent - Position it above the floor
The player is invisible at runtime - it represents the camera and controller.
7. Add the Scene to the Build¶
- Open the Control Panel (Ctrl+Shift+L)
- Go to the Scenes tab
- Click "+ Add Current Scene"
8. Build and Run¶
- Go to the Build tab
- Set Target to Emulator
- Click BUILD & RUN
SplashEdit exports the scene, compiles the PS1 executable, and launches PCSX-Redux. You should see your textured floor with camera controls.
9. Enjoy¶
You should now be able to walk around. Left joystick for movement and right joystick for camera controls. If you aren't getting proper input. See the trouble shooting section below.
What Just Happened?¶
Behind the scenes, SplashEdit:
- Quantized your texture to PS1-compatible color depth
- Packed it into VRAM alongside the framebuffers and system font
- Converted your mesh to fixed-point PS1 vertex format with vertex colors (baked lighting by default)
- Wrote everything into a
.splashpackbinary - Compiled the psxsplash C++ runtime with your configuration
- Launched PCSX-Redux serving your data via PCdrv
Next Steps¶
- Add more objects with different textures and bit depths
- Set up UI with a HUD canvas
- Write Lua scripts for game logic
- Add interactables the player can interact with
- Check out the tutorials for complete game mechanics
Trouble Shooting¶
Problem: The game runs but I can't move around with the Joysticks. Inputs don't work / are wrong.
Solution 1:
When your game launches there should be some tabs at the top. If you don't see them press ESC to bring them up. Then go to Configuration > Controls Make sure "Controller Type" is analog and "Analog Mode" is checked. Also if you are using an original controller you may have to physically click the "ANALOG" button between the joysticks to get proper input.
Solution 2:
If that still doesn't work review steps 5 and 6 for a step that was missed.