Porporo is an experimental operating system specification for Varvara, written in Uxntal and ANSI C. For more details, see the devlog.
To build the emulator, you must install SDL2 for your distro. If you are using a package manager:
sudo pacman -Sy sdl2 # Arch
sudo apt install libsdl2-dev # Ubuntu
sudo xbps-install SDL2-devel # Void Linux
brew install sdl2 # OS X
To build Porporo and the required roms:
make run
Since parts of Porporo are built with itself, we need to have a partial implementation of the varvara ecosystem(src/uxncli
), and an assembler(src/uxnasm
). Compiling porporo begins by building these two tools, then assembling the roms required by porporo(menu.rom
, wallpaper.rom
, potato.rom
). These 3 roms then needs to be converted to C style arrays with format-c.rom
rom. When this is done we can finally compile porporo.
F1
, lock varvara.F2
, center varvara.F4
, exit varvara.F5
, soft-reboot varvara.
esc
, set normal mode.m
, set move mode.d
, set draw mode.
tab
, see all files.esc
, exit.mouse1
, orenter
, run file.mouse2
m orshift+enter
, send filename.
The rom expects a file named .wallpaper
in the chr format that is large enough to fill the screen. The way I do it is by, first getting the screen size(let's say 1328x640
), creating a wallpaper.tga
image at that size, converting it with tgachr, generating a file named wallpapera6x50.chr
, and finally renaming it to .wallpaper
. Voila!
uxncli ~/roms/tgachr.rom wallpaper.tga
mv wallpapera6x50.chr .wallpaper
Potato is the menubar rom that holds some of the state of porporo in its zero-page:
0x00*
action vector0x02
action value
Porporo listens special console messages types:
0xff
run command0xfe
set action type
The following resources are a good place to start:
You can also find us in #uxn
on irc.esper.net.
Submit patches using git send-email
to the ~rabbits/public-inbox mailing list.