A WIP 3d engine for the original PSX. Uses Nugget+Psyq, no libgs, and has a companion extension for Blender !
Go to file
2021-06-22 17:49:56 +02:00
config ovly level switch now working 2021-04-16 20:22:03 +02:00
levels Merge ovl upload 2021-05-02 19:12:13 +02:00
TIM Merge ovl upload 2021-05-02 19:12:13 +02:00
.gdbinit migrate to multifiles setup 2021-04-10 14:22:48 +02:00
atan.c Fck again 2021-02-11 16:00:01 +01:00
camera.c Dualshock support 2021-04-20 11:55:52 +02:00
camera.h Add cammode defines 2021-06-22 17:24:52 +02:00
coridor2.blend Merge ovl upload 2021-05-02 19:12:13 +02:00
custom_types.h Add LEVEL struc 2021-04-15 18:18:39 +02:00
defines.h Add cammode defines 2021-06-22 17:24:52 +02:00
graphics.c ovly level switch now working 2021-04-16 20:22:03 +02:00
graphics.h preparing level ovly loading 2021-04-13 16:52:48 +02:00
isotest.sh Merge ovl upload 2021-05-02 19:12:13 +02:00
loadlvl.py switch to new cmd scheme 2021-05-02 12:52:09 +02:00
macros.h migrate to multifiles setup 2021-04-10 14:22:48 +02:00
main.c Add cammode defines 2021-06-22 17:24:52 +02:00
Makefile switch to proper pad/ds support 2021-04-18 23:41:28 +02:00
math.c Dualshock support 2021-04-20 11:55:52 +02:00
math.h migrate to multifiles setup 2021-04-10 14:22:48 +02:00
overlay.ld Add LEVEL struc 2021-04-15 18:18:39 +02:00
ovly-upload-helper.sh add sio helper script 2021-05-02 12:59:03 +02:00
ovlyup.sh ovly level switch now working 2021-04-16 20:22:03 +02:00
pad.c switch to proper pad/ds support 2021-04-18 23:41:28 +02:00
pad.h trying some things with sio 2021-04-28 20:32:46 +02:00
pcdrv.c Merge ovl upload 2021-05-02 19:12:13 +02:00
pcdrv.h trying some things with sio 2021-04-28 20:32:46 +02:00
pcsx.json Merge ovl upload 2021-05-02 19:12:13 +02:00
physics.c migrate to multifiles setup 2021-04-10 14:22:48 +02:00
physics.h Use overlay to load level 2021-04-14 15:56:14 +02:00
psx.c Add cammode defines 2021-06-22 17:24:52 +02:00
psx.h Add cammode defines 2021-06-22 17:24:52 +02:00
README.md Add readme 2021-06-22 17:49:56 +02:00
space.c migrate to multifiles setup 2021-04-10 14:22:48 +02:00
space.h migrate to multifiles setup 2021-04-10 14:22:48 +02:00

Pic or it didn't happen

3dcam PSX engine

This a WIP PSX 3d engine. Use this with the companion blender exporter to create levels for the engine.

3d scene pre-rendered BGs Push things Sprite Vertex animation

Features

Be warned this is WIP !

comparison
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.

  1. Clone this repo in (...)/pcsx-redux/src/mips/
  2. Navigate to that folder in a terminal :
cd /pcsx-redux/src/mips/3dcam-headers
  1. Type ./isotest.sh. This should compile the example, build an iso with mkpsxiso and launch it with pcsx-redux.
  2. 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/