GithubHelp home page GithubHelp logo

porporo's Introduction

Porporo

Porporo is an experimental operating system specification for Varvara, written in Uxntal and ANSI C. For more details, see the devlog.

Build

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.

Global Controls

  • F1, lock varvara.
  • F2, center varvara.
  • F4, exit varvara.
  • F5, soft-reboot varvara.

Action Controls

  • esc, set normal mode.
  • m, set move mode.
  • d, set draw mode.

Roms

Menu.rom

  • tab, see all files.
  • esc, exit.
  • mouse1, or enter, run file.
  • mouse2m or shift+enter, send filename.

Wallpaper.rom

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.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:

  • 0xff run command
  • 0xfe set action type

Need a hand?

The following resources are a good place to start:

You can also find us in #uxn on irc.esper.net.

Contributing

Submit patches using git send-email to the ~rabbits/public-inbox mailing list.

porporo's People

Contributors

jbmorley avatar neauoire avatar nojusr avatar xsova avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.