From 82dc885b443656a400d0ff6b3871b58bb8bd2b07 Mon Sep 17 00:00:00 2001 From: neauoire Date: Sun, 17 Dec 2023 10:22:53 -0800 Subject: [PATCH] Starting docs --- README.md | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 44a76c7..a2615ce 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Porporo -Porporo is an experimental operating system specification for [Varvara](https://wiki.xxiivv.com/site/varvara.html), written in TAL and ANSI C. This is a work in progress, for more details [follow the development during december](https://rabbits.srht.site/decadv/). +[Porporo](https://wiki.xxiivv.com/site/porporo.html) is an experimental operating system specification for [Varvara](https://wiki.xxiivv.com/site/varvara.html), written in [Uxntal](https://wiki.xxiivv.com/site/uxntal.html) and ANSI C. For more details, see the [devlog](https://rabbits.srht.site/decadv/). ## Build -To build the Uxn emulator, you must install [SDL2](https://wiki.libsdl.org/) for your distro. If you are using a package manager: +To build the emulator, you must install [SDL2](https://wiki.libsdl.org/) for your distro. If you are using a package manager: ```sh sudo pacman -Sy sdl2 # Arch @@ -13,22 +13,28 @@ sudo xbps-install SDL2-devel # Void Linux brew install sdl2 # OS X ``` -Since parts of Porporo are built with uxn 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 ready we can finally compile porporo. - To build Porporo and the required roms: ``` make run ``` -## Controls +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. + +## Global Controls - `F1`, lock varvara. - `F2`, center varvara. - `F4`, exit varvara. - `F5`, soft-reboot varvara. -- `d`, draw mode. -- `m`, move mode. + +## Action Controls + +- `esc`, set normal mode. +- `m`, set move mode. +- `d`, set draw mode. + +## Roms ### Menu.rom @@ -37,15 +43,22 @@ make run - `mouse1`, or `enter`, run file. - `mouse2`m or `shift+enter`, send filename. -## Wallpaper +### Wallpaper.rom -The wallpaper rom expects a file named `.wallpaper` in the [chr format](https://wiki.xxiivv.com/site/chr_format.html) 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](https://git.sr.ht/~rabbits/uxn-utils/tree/main/item/cli/tgachr/tgachr.tal), generating a file named `wallpapera6x50.chr`, and finally renaming it to `.wallpaper`. Voila! +The rom expects a file named `.wallpaper` in the [chr format](https://wiki.xxiivv.com/site/chr_format.html) 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](https://git.sr.ht/~rabbits/uxn-utils/tree/main/item/cli/tgachr/tgachr.tal), generating a file named `wallpapera6x50.chr`, and finally renaming it to `.wallpaper`. Voila! ``` uxncli ~/roms/tgachr.rom wallpaper.tga mv wallpapera6x50.chr .wallpaper ``` +### Potato.rom + +Potato is the menubar rom that holds some of the state of porporo in its zero-page: + +- `0x00*` action vector +- `0x02` action value + ## Messages Porporo listens special console messages types: @@ -53,10 +66,16 @@ Porporo listens special console messages types: - `0xff` run command - `0xfe` set action type -## Potato +## Need a hand? -Potato is the menubar rom that holds some of the state of porporo in its zero-page: +The following resources are a good place to start: -- `0x00*` action vector -- `0x02` action value +* [XXIIVV — uxntal](https://wiki.xxiivv.com/site/uxntal.html) +* [XXIIVV — uxntal reference](https://wiki.xxiivv.com/site/uxntal_reference.html) +* [compudanzas — uxn tutorial](https://compudanzas.net/uxn_tutorial.html) +You can also find us in [`#uxn` on irc.esper.net](ircs://irc.esper.net:6697/#uxn). + +## Contributing + +Submit patches using [`git send-email`](https://git-send-email.io/) to the [~rabbits/public-inbox mailing list](https://lists.sr.ht/~rabbits/public-inbox).