Homebrew PICA200 shader assembler
![]() Don't use this instruction unless you know what you're doing. It does *not* touch the if/call stacks, so the following code will behave in an unexpected way (and cannot be fixed by inserting nops): ``` ifu true for ... ifu true break .end .end .else ; will be executed since the inner if is still on the stack .end ``` breakc has the same problem but does not require a separate condition. |
||
---|---|---|
source | ||
.gitignore | ||
autogen.sh | ||
Changelog.md | ||
clean.sh | ||
configure.ac | ||
COPYING | ||
example.vsh | ||
Makefile.am | ||
Manual.md | ||
README.md |
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 ofpicasso
and whose usage of boost inspired me to make my own assembler without hefty dependencies.