mirror of https://git.sr.ht/~rabbits/porporo
Starting docs
This commit is contained in:
parent
9436905417
commit
82dc885b44
45
README.md
45
README.md
|
@ -1,10 +1,10 @@
|
||||||
# Porporo
|
# 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
|
## 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
|
```sh
|
||||||
sudo pacman -Sy sdl2 # Arch
|
sudo pacman -Sy sdl2 # Arch
|
||||||
|
@ -13,22 +13,28 @@ sudo xbps-install SDL2-devel # Void Linux
|
||||||
brew install sdl2 # OS X
|
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:
|
To build Porporo and the required roms:
|
||||||
|
|
||||||
```
|
```
|
||||||
make run
|
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.
|
- `F1`, lock varvara.
|
||||||
- `F2`, center varvara.
|
- `F2`, center varvara.
|
||||||
- `F4`, exit varvara.
|
- `F4`, exit varvara.
|
||||||
- `F5`, soft-reboot 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
|
### Menu.rom
|
||||||
|
|
||||||
|
@ -37,15 +43,22 @@ make run
|
||||||
- `mouse1`, or `enter`, run file.
|
- `mouse1`, or `enter`, run file.
|
||||||
- `mouse2`m or `shift+enter`, send filename.
|
- `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
|
uxncli ~/roms/tgachr.rom wallpaper.tga
|
||||||
mv wallpapera6x50.chr .wallpaper
|
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
|
## Messages
|
||||||
|
|
||||||
Porporo listens special console messages types:
|
Porporo listens special console messages types:
|
||||||
|
@ -53,10 +66,16 @@ Porporo listens special console messages types:
|
||||||
- `0xff` run command
|
- `0xff` run command
|
||||||
- `0xfe` set action type
|
- `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
|
* [XXIIVV — uxntal](https://wiki.xxiivv.com/site/uxntal.html)
|
||||||
- `0x02` action value
|
* [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).
|
||||||
|
|
Loading…
Reference in New Issue