Collection of PsyQ basic examples NOT using libgs
Go to file
2021-07-10 15:48:45 +02:00
hello_2pads Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_cube Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_cubetex Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_gte_opti Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_light Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_multivag Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_pad Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_ft Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_fun Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_gt Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_gt_tw Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_inline Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_sio Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_sprt Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_tile Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_vag Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_world Revert "Remove old files" 2021-07-10 15:48:45 +02:00
includes Move to better file structure 2021-07-10 13:36:57 +02:00
thirdparty Move to better file structure 2021-07-10 13:36:57 +02:00
TIM add 3d gouraud textured cube example 2021-01-05 12:31:12 +01:00
VAG correct VAG Readme links 2020-12-22 12:39:47 +01:00
.gitmodules Move to better file structure 2021-07-10 13:36:57 +02:00
common.mk Move to better file structure 2021-07-10 13:36:57 +02:00
CPUMAC.H Revert "Remove old files" 2021-07-10 15:48:45 +02:00
cube.blend Revert "Remove old files" 2021-07-10 15:48:45 +02:00
cube.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
cube.gif Revert "Remove old files" 2021-07-10 15:48:45 +02:00
cubetex.blend Revert "Remove old files" 2021-07-10 15:48:45 +02:00
cubetex.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
fun_with_poly.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_2pads.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_cube.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_cubetex.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_gt.jpg Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_gte_opti.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_light.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_multivag.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_pad.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_ft.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_gt_tw.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_gt.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly_inline.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_poly.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_sio.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_sprt.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_tile.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_vag.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
hello_world.c Revert "Remove old files" 2021-07-10 15:48:45 +02:00
LICENSE Initial commit 2020-12-21 17:26:40 +01:00
Makefile Move to better file structure 2021-07-10 13:36:57 +02:00
README.md Fix zip name 2021-07-10 13:53:05 +02:00

Nolibgs Hello Worlds !

3D power ! 3D power ! 3D power !

So you want to begin developping on the original PSX but don't know where to start ?

This repo is destined to host a bunch of simple examples, each describing how to do one thing.

The code here will be using Nugget + PsyQ, the "Official" Sony SDK but with a modern MIPS toolchain.

We will not be using libGS, the Extended Graphics Library for the graphic stuff...

Instead we'll try to devise methods to reproduce libgs functions. This will not necessarly be more efficient, but we'll learn a lot more stuff !

Installation

We'll keep things simple for now. If you want to read about more methods to get things up and running, see the wiki's Installation methods section.

Windows

MIPS toolchain setup

  1. Download the MIPS toolchain here : http://static.grumpycoder.net/pixel/mips/g++-mipsel-none-elf-10.3.0.zip
  2. Unzip anywhere on your hard-drive and add the bin folder to your $PATH.
  3. Test everything is fine by launching a command prompt and typing mipsel-none-elf-gcc.exe --version. If you get a message like mipsel-none-gnu-gcc (GCC) 10.3.0, then it's working !

Nugget + PsyQ setup

  1. Download the PsyQ converted libraries here : http://psx.arthus.net/sdk/Psy-Q/psyq-4_7-converted-light.zip
  2. Download this repository's release : https://github.com/ABelliqueux/nolibgs_hello_worlds/releases/download/v0.1/nolibgs_hello_worlds.zip
  3. Unzip the nolibgs_hello_worlds.zip file anywhere on your hard-drive. We'll use C:\psxdev\ as an example
  4. Unzip the psyq-4_7-converted-light.zip file in C:\psxdev\psyq. You should now have C:\psxdev\psyq\include and C:\psxdev\psyq\lib.
  5. Test everything is working by launching a command prompt, change to the C:\psxdev\ directory with the following command: cd C:\psxdev\, then type make and hit enter. By default, this should build the hello_world example, and you should now have a hello_world.ps-exe file in C:\psxdev\hello_world. This a PSX executable that can be run in an emulator like pcsx-redux.

Linux

Install your distribution's MIPS toolchain

In a terminal :

On Debian derivatives (Ubuntu, Mint...) :

sudo apt-get install gcc-mipsel-linux-gnu g++-mipsel-linux-gnu binutils-mipsel-linux-gnu

On Arch derivatives (Manjaro), the mipsel environment can be installed from AUR : cross-mipsel-linux-gnu-binutils and cross-mipsel-linux-gnu-gcc using your AURhelper of choice:

trizen -S cross-mipsel-linux-gnu-binutils cross-mipsel-linux-gnu-gcc

Nugget + PsyQ setup

Let's do it all on the CLI !

  1. Install the git client :
sudo apt-get install git
  1. Clone this repository :
git clone https://github.com/ABelliqueux/nolibgs_hello_worlds.git --recursive
  1. Change to the repo's directory and get the PsyQ converted libraries:
cd nolibgs_hello_worlds
wget http://psx.arthus.net/sdk/Psy-Q/psyq-4_7-converted-light.zip
unzip psyq-4_7-converted-light.zip
  1. Try your setup :
make

By default, this should build the hello_world example, and you should now have a hello_world.ps-exe file in ./hello_world/. This a PSX executable that can be run in an emulator like pcsx-redux.

MacOS

A brew installation script can be found here..

Compilation

In a terminal, cd to your psxdev setup directory and type make all to build all examples in their respective directories.

Alternatively, you can use make example_name to only build that example, i.e : make hello_poly.

If you want to remove all the files generated by the compilation process, type make clean.

Links and Doc

Credits, thanks, hugs

Everything here was learnt from some more talented persons, mainly but not excluding others that hang around on the psxdev discord Nicolas Noble, Lameguy64, NDR008, Jaby smoll seamonstah, danhans42, rama, sickle, paul, squaresoft74, and lot mores !