All Projects → ABelliqueux → nolibgs_hello_worlds

ABelliqueux / nolibgs_hello_worlds

Licence: GPL-3.0 license
Collection of PsyQ basic examples NOT using libgs

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to nolibgs hello worlds

pctation
PlayStation emulator & debugger in C++17
Stars: ✭ 103 (+17.05%)
Mutual labels:  ps1, psx
godot-psx-style-demo
Demo project featuring a collection of PS1 style shaders and materials for Godot engine.
Stars: ✭ 266 (+202.27%)
Mutual labels:  ps1, psx
CTR-tools
Crash Team Racing (PS1) tools - a C# framework by DCxDemo and a set of tools to parse files found in the original kart racing game by Naughty Dog.
Stars: ✭ 93 (+5.68%)
Mutual labels:  ps1, psx
Duckstation
Fast PlayStation 1 emulator for x86-64/AArch32/AArch64
Stars: ✭ 2,888 (+3181.82%)
Mutual labels:  ps1, psx
dotfiles
This is a dotfiles repository created and maintained by @erdaltsksn. It contains a collection of `.files`.
Stars: ✭ 16 (-81.82%)
Mutual labels:  homebrew
Kosmos-Wii-U
All-in-One CFW Package for the Nintendo Wii U
Stars: ✭ 14 (-84.09%)
Mutual labels:  homebrew
cointop
A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies 🚀
Stars: ✭ 3,589 (+3978.41%)
Mutual labels:  homebrew
homebrew-amiga
A repository for Amiga Development related brews
Stars: ✭ 21 (-76.14%)
Mutual labels:  homebrew
Iterm Fish Fisher Osx
Complete guide and Bash script to install Command Line Tools + Homebrew + iTerm2 + Fish Shell + Fisher + Plugins for development purposes
Stars: ✭ 249 (+182.95%)
Mutual labels:  homebrew
homebrew-apple-fonts
Easily install Apples fonts using homebrew.
Stars: ✭ 12 (-86.36%)
Mutual labels:  homebrew
mipsel-ecoff-toolchain
Net Yaroze cross compiler toolchain for linux
Stars: ✭ 27 (-69.32%)
Mutual labels:  psx
dotfiles
My dotfiles
Stars: ✭ 22 (-75%)
Mutual labels:  homebrew
dotfiles
Automatic machine configurator using Ansible
Stars: ✭ 13 (-85.23%)
Mutual labels:  homebrew
libyaul
An open source SEGA Saturn development kit
Stars: ✭ 117 (+32.95%)
Mutual labels:  homebrew
homebrew-llvm
LLVM formulae for the Homebrew package manager
Stars: ✭ 23 (-73.86%)
Mutual labels:  homebrew
fake-08
A Pico-8 player/emulator for console homebrew
Stars: ✭ 374 (+325%)
Mutual labels:  homebrew
codebreaker-rs
A Rust library to decrypt & encrypt any cheat code for CodeBreaker PS2
Stars: ✭ 18 (-79.55%)
Mutual labels:  homebrew
ComicNX
NSFW comic browser for the Nintendo Switch
Stars: ✭ 15 (-82.95%)
Mutual labels:  homebrew
tobutobugirl-dx
An arcade platformer homebrew game for the Game Boy, Game Boy Color and Super Game Boy
Stars: ✭ 58 (-34.09%)
Mutual labels:  homebrew
POPS-binaries
PlayStation One Portable Station binaries for POPStarter
Stars: ✭ 68 (-22.73%)
Mutual labels:  ps1

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

You can setup a pre-built MIPS toolchain by copy-pasting the following into a command prompt:

powershell -c "& { iwr https://raw.githubusercontent.com/grumpycoders/pcsx-redux/main/mips.ps1 | iex }"

Then, open a new command prompt, and type the following:

mips install 11.2.0

Nugget + PsyQ setup

  1. Download the PsyQ converted libraries here : http://psx.arthus.net/sdk/Psy-Q/psyq-4.7-converted-full.7z
  2. Clone the 'nolibgs_hello_worlds' repo with
    git clone https://github.com/ABelliqueux/nolibgs_hello_worlds.git --recursive
    or download this repository's release and extract nolibgs_hello_worlds.zip's content to C:\no_libgs_hello_worlds\ .
  3. Extract the content of psyq-4.7-converted-full.7z in C:\no_libgs_hello_worlds\psyq. You should now have C:\no_libgs_hello_worlds\psyq\include and C:\no_libgs_hello_worlds\psyq\lib ;
no_libgs_hello_worlds
├── common.mk
├── hello_world
|       ├── hello_world.c
|       ├── Makefile
├── hello_...
└── psyq
    ├── lib
    |    └── *.a 
    └── include
         └── *.h  
  1. Test everything is working by launching a command prompt, change to the C:\no_libgs_hello_worlds\ directory with the following command: cd C:\no_libgs_hello_worlds\, 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:\no_libgs_hello_worlds\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-full.7z
7z x psyq-4.7-converted-full.7z -o./psyq
  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.

Upcoming examples

  • hello_poly_subdiv (polygon subdivision)
  • hello_rsd (rsd format)

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 !

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].