Skip to content

LinusCDE/retris

Repository files navigation

retris

rm1 rm2 opkg launchers Mentioned in Awesome reMarkable

Implementation of rust tetris_core on the reMarkable using libremarkable

The patterns are some totally random functions. If someone wants to do something better (not just functions) or just loves math, go ahead.

Controlling

  • Move Left and Right: Hardware and Software buttons or swipe left and right
  • Move down: Swipe down
  • Rotate: Middle hardware button or tap anywhere

Installation

Prebuilt binary/program

  • Go the the releases page
  • Get the newest released "retris" file and copy it onto your remarkable, using e.g. FileZilla, WinSCP or scp.
  • SSH into your remarkable and mark the file as executable with chmod +x retris
  • Stop xochitl (the interface) with systemctl stop xochitl
  • Start the game with ./retris
  • After you're done, restart xochitl with systemctl start xochitl

Compiling

In general building should work on most toolchains. You generally wanna target armv7-unknown-linux-gnueabihf for any remarkable. But as with all things in life, stuff never works great on every setup.

That's why I recommend to nowadays build with the rust image from toltec-dev/toolchain. It is the most modern and the closest to the actual reMarkable system as you're gonna get as of now.

To make it easier to use, I found that you can use the rust image (ghcr.io/toltec-dev/rust:v3.2, all versions). This is done using the Cross.toml file. So you should just need to run cross build --target=armv7-unknown-linux-gnueabihf --release and it will use the above image (or possibly newer if this readme gets out-of-date).

reMarkable 2 support

This app cant actually drive the rM 2 framebuffer. It needs rm2fb for that.

If you execute retris from ssh, be sure to have followed rm2fb steps to enable the support. When launching through a launcher (from toltec) it should just work but have more ghosting on the rM2.

Environment variables

The environment variable LIBREMARKABLE_FB_DISFAVOR_INTERNAL_RM2FB can be set to 1 to make this application not try to use its internal framebuffer client for RM2FB.

About

Implementation of rust tetris_core on the reMarkable using libremarkable

Topics

Resources

License

Stars

Watchers

Forks

Languages