Homebrew PICA200 shader assembler
Go to file
fincs e152f4e626 WIP multi-shader support, see details:
- picasso now accepts several input files, which are each compiled
  into DVLE objects inside the .shbin
- Uniform allocation is shared amongst all DVLEs.
- Constant allocation is private to each DVLE.
- Header file generation is temporarily disabled.
- New directives:
  .nodvle
    Disables the generation of a DVLE object for the current input file.
    This allows sharing code amongst shaders.
  .entry entryName
    Specifies the name of the entrypoint procedure of the current DVLE.
    By default it's 'main'.
2015-08-13 21:46:08 +02:00
source WIP multi-shader support, see details: 2015-08-13 21:46:08 +02:00
.gitignore Autoconfiscate; this is required by the devkitARM build process 2014-12-10 22:28:45 +01:00
autogen.sh Set +x bit on .sh scripts 2014-12-10 23:24:22 +01:00
clean.sh Set +x bit on .sh scripts 2014-12-10 23:24:22 +01:00
configure.ac WIP multi-shader support, see details: 2015-08-13 21:46:08 +02:00
COPYING Initial commit 2014-11-16 18:59:54 +01:00
example.vsh Add support for integer vector uniforms/constants and boolean uniforms 2014-12-11 17:23:29 +01:00
Makefile.am Autoconfiscate; this is required by the devkitARM build process 2014-12-10 22:28:45 +01:00
Manual.md Correct Markdown typo 2015-03-04 22:43:36 +01:00
README.md Add WIP documentation 2014-12-12 22:17:17 +01:00

picasso

Introduction

picasso is a PICA200 shader assembler, written in C++. The PICA200 is the GPU used by the Nintendo 3DS.

picasso comes with a manual Manual.md that explains the shader language. example.vsh is simple example that demonstrates it.

Building

A working C++ compiler for the host is required (Windows users: use TDM-GCC), plus autotools. Use the following commands to build the program:

./autogen.sh
./configure
make

Shout-outs

  • smea for reverse-engineering the PICA200, writing documentation, working hard & making aemstro_as.py (the original homebrew PICA200 shader assembler)
  • neobrain for making nihstro-assemble, whose syntax inspired that of picasso and whose usage of boost inspired me to make my own assembler without hefty dependencies.