If you're here, you're probably wondering

What do I need to start developing on

Well, you're in luck, developing on PSX has never been this easy !

You need a SDK

The Software Development Kit is the suite of softwares that you install on your computer in order to be able to compile C code.
Use the PsyQ libs with a modern compiler ! The PsyQ libs have plenty of docs and it works on Win, Gnu/Linux and MacOS. Legacy PsyQ install instructions : Win, Macos and Gnu/Linux.
PSn00bSDK It's shiny new, open-source, and fairly documented. It works on Win, Macos and Gnu/Linux.

You need an emulator...

...with debugging tools; they allow you to see the content of main and video memory, registers, breakpoints...
no$psx It's old but it's light and straight to the point, just extract the EXE and you're set. Win only.
pcsx-redux It's modern, open-source and in active development. A bit more work to set-up. Win, Macos ang Gnu/Linux.

You need the Original hardware

Where's the fun if you can't run your code on real hardware ?

For this to happen, you need an original Playstation console,
preferably with a modchip, serial and parralel ports and a AR type cart.

You will have to flash your cart with Unirom, or alternatively, use a Unirom CD.

Unirom is the software that runs on the PSX and allows you to upload your compiled code directly to the PSX memory.

NOTPSXSerial, or NOPS, is the tool you will run on your computer to send code to your Playstation running Unirom.
Unirom Opensource, full of features and compatible with LOTS of carts.
NOPS Opensource, light, no setup. Just extract and run.

You need a Serial/Usb cable

If you don't want to wear your fragile laser unit, and spend 95% of your time burning discs to test your builds, you'll have to make a PSX Serial to USB cable.

For most usecases, a simple cable with Rx, Tx and Gnd connected will set you up.

To build your cable you will need half a Link cable (scph-1040) or a dead PSX's serial port. Alternatively, you can directly solder some wires to your PSX motherboard.

If you only have a PSone, you can add Serial output yourself.

You will also need a USB>Serial converter. Your main options are
a FTDI FT232RL Cheap and simple to set up. Just plug PSX Rx to FTDI Tx, PSX Tx to FTDI Rx, PSX GND to FTDI GND and voilà !
3.3V Arduino Uno Some Arduino Uno have a jumper for them to run at 3.3V.

You need to get to it !

A good starting point to understand the basics of a PSX program are
Lameguy64 Tutorials Login and password are : annoyingmous
Psxdev.net HelloWorld

You (might) need help...

There is plenty of ressources online and a large community of active developpers for the PSX.
No$Cash doc
psxdev discord


Go on then !