A WIP 3d engine for the original PSX. Uses Nugget+Psyq, no libgs, and has a companion extension for Blender !
config | ||
levels | ||
TIM | ||
.gdbinit | ||
atan.c | ||
camera.c | ||
camera.h | ||
coridor2.blend | ||
custom_types.h | ||
defines.h | ||
graphics.c | ||
graphics.h | ||
isotest.sh | ||
loadlvl.py | ||
macros.h | ||
main.c | ||
Makefile | ||
math.c | ||
math.h | ||
overlay.ld | ||
ovly-upload-helper.sh | ||
ovlyup.sh | ||
pad.c | ||
pad.h | ||
pcdrv.c | ||
pcdrv.h | ||
pcsx.json | ||
physics.c | ||
physics.h | ||
psx.c | ||
psx.h | ||
README.md | ||
space.c | ||
space.h |
3dcam PSX engine
This a WIP PSX 3d engine. Use this with the companion blender exporter to create levels for the engine.
Features
Be warned this is WIP !
Real-time 3D / 8bpp background / 4bpp background
"Engine"
- Very basic physics / collision detection
- Constrained camera trajectory
- Orbital camera mode
- Basic Spatial partitioning
- Portal based camera angle switch
- 3D sprite
- VRam auto layout for TIMs
Planned
- Fix and improve all the things !
- Wall collisions
Compiling
You need to install mkpsxiso and the pcsx-redux emulator and Nugget+PsyQ SDK before
you can build the engine. Put mkpsxiso
and pcsx-redux
in your $PATH and you should be good to go.
- Clone this repo in
(...)/pcsx-redux/src/mips/
- Navigate to that folder in a terminal :
cd /pcsx-redux/src/mips/3dcam-headers
- Type
./isotest.sh
. This should compile the example, build an iso withmkpsxiso
and launch it withpcsx-redux
. - Install the blender extension to create your own levels.
Credits
Based on the code provided by TheDukeOfZill, 04-2014, on http://www.psxdev.net/forum/viewtopic.php?f=64&t=537#p4088
PSX code based on example by Lameguy64
pngquant : https://github.com/kornelski/pngquant
img2tim : https://github.com/Lameguy64/img2tim
Freeimage : https://freeimage.sourceforge.io/