Log In  

Follow me on Twitter
Check my artwork on Pinterest or bring some home from RedBubble.


First, I'm a noob regarding Linux and alikes. I've been trying for last 24 hours to make my Picade (a small arcade bartop by Pimoroni, running on Raspberry Pi 4) start into Pico-8 in Splore mode. It boots in the desktop and I usually launch Pico-8 manually in the console with:

~/pico8/pico8 -splore

(my folder is pico8, not pico-8)

Works well, figured I could as well make Raspberry OS do it for me.

How naive.

Followed tens of tutorials, with no success. To the most, it looks like Pico-8 launches for a second then closes. Feels like this because there's a black screen opening that closes 1 sec later. I've made a .sh file with:

echo 'Launching Pico-8...'
/home/pi/pico8/pico8_dyn -splore
echo 'Pico-8 closed'

with 'pico8_dyn' in place of 'pico8' if that matters. If I run it on console it works with the added echos on start and closing of Pico-8.

Then I made a autostart file at .config/lxsession/LXDE-pi/autostart:

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@xset s off
@xset -dpms
#@sleep 5s
#@/home/pi/pico8/pico8_dyn -splore
@sh /home/pi/pico8/launchPico8.sh
#@/usr/bin/chromium-browser https://www.discogs.com

Note the 3 commented lines:

  • the sleep 5s was a tuto suggestion to wait for desktop loading, with no effect.
  • the following line tries to start Pico-8. As said the result is a black screen showing briefly (this doesn't occur once the line commented)
  • last line launches Chromium on the discogs website at desktop launch. This works, so the autostart file is indeed called.

So the line supposed to launch Pico8 is the call to my .sh file above. No better result, but the echo may tell what happens in the log file at ~/.cache/lxsession/LXDE-pi/run.log. So a tail -n50 shows:

** Message: 13:08:18.528: utils.vala:45: System system path location : /etc/xdg/lxsession/LXDE-pi/desktop.conf
xprop:  no such property "_NET_NUMBER_OF_DESKTOPS"
xprop:  no such property "_NET_DESKTOP_NAMES"
** Message: 13:08:18.542: app.vala:721: polkit separate
** Message: 13:08:18.542: app.vala:721: polkit separate
** Message: 13:08:18.554: app.vala:76: Launching lxpolkit
** Message: 13:08:18.568: utils.vala:127: User config used : /home/pi/.config/lxsession/LXDE-pi/autostart
** Message: 13:08:18.568: utils.vala:148: Final file used : /home/pi/.config/lxsession/LXDE-pi/autostart
** Message: 13:08:18.569: autostart.vala:42: Autostart path : /home/pi/.config/lxsession/LXDE-pi/autostart
** Message: 13:08:18.589: app.vala:76: Launching lxpanel
** Message: 13:08:18.598: app.vala:76: Launching pcmanfm

** (lxsession:542): WARNING **: 13:08:18.611: app.vala:86: L’exécution du processus fils « xscreensaver » a échoué (Aucun fichier ou dossier de ce type)

** (lxsession:542): WARNING **: 13:08:18.611: app.vala:87: Error when launching xscreensaver
** Message: 13:08:18.623: app.vala:76: Launching xset
** Message: 13:08:18.632: app.vala:76: Launching xset
** Message: 13:08:18.636: app.vala:76: Launching sh
** Message: 13:08:18.646: options.vala:107: Create build-in Clipboard
Launching Pico-8...
** Message: 13:08:18.710: main.vala:441: Check keymap_mode (null)
** Message: 13:08:18.715: app.vala:76: Launching /usr/bin/ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-7wbdwvahPc3f/agent.630; export SSH_AUTH_SOCK;
echo Agent pid 636;
** Message: 13:08:18.859: x-terminal-emulator has very limited support, consider choose another terminal
** Message: 13:08:18.897: app.vala:130: xset exit with this type of exit: 0
** Message: 13:08:18.897: app.vala:139: Exit normal, don't reload
** Message: 13:08:18.897: app.vala:130: xset exit with this type of exit: 0
** Message: 13:08:18.897: app.vala:139: Exit normal, don't reload
** Message: 13:08:18.897: app.vala:130: /usr/bin/ssh-agent exit with this type of exit: 0
** Message: 13:08:18.924: x-terminal-emulator has very limited support, consider choose another terminal
Openbox-Message: Impossible de trouver un fichier de menus valide  « /usr/share/lxde/openbox/menu.xml »
** Message: 13:08:20.464: Connecting ...
** Message: 13:08:20.464: Status changed to down
Unit pt-device-manager.service could not be found.

** (lxpanel:609): WARNING **: 13:08:20.659: Battery 0 not found
ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred
** Message: 13:08:21.563: Status changed to opened
** Message: 13:08:21.563: Connected to dhcpcd-8.1.2
** Message: 13:08:21.564: Status changed to connecting
** Message: 13:08:21.564: eth0: Link is down
** Message: 13:08:21.565: wlan0: Associated with Livebox-098B
** Message: 13:08:21.566: wlan0: WPA status connected
** Message: 13:08:21.566: wlan0: Received scan results
** Message: 13:08:25.766: wlan0: Configured
** Message: 13:08:25.766: Status changed to connected
ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred

You can see the echo 'Launching Pico-8...' at 13:08:18.646 so the .sh is launched. The close message is not here, so I guess Pico-8 is running but does not show.

This all feels like a pb with Pico-8, as the autostart can launch Chromium or any other program.

Also tried with adding a pico8.desktop as told there: https://learn.sparkfun.com/tutorials/how-to-run-a-raspberry-pi-program-on-startup/all

[Desktop Entry]

Doesn't work neither.

So I'm getting quite tired and depressed about how difficult it is to simply launch Pico-8 at startup. Againg, I'm a noob, but I feel like that's not the only problem here. An idea, anyone? Am I doing something wrong? Is it a problem with Pico-8? Did someone achieved what I'm trying to do?

EDIT: the command "ps -ef | grep pico" shows that Pico-8 is in fact running. If I launch manually the .desktop file above in the desktop, it runs Pico-8 as intended, and this Pico-8 also appear in the "ps" command as a 2nd pico-8 instance. So it looks like all those attempts really launch Pico-8, but it just doesn't show. Alt-tab don't show them neither. So why don't they show, and how can I make them to?

EDIT 2: pico-8 sound was muted, but after I unmuted it, I now can hear its little tune playing once the Pi has booted in the desktop, so I'm 100% sure Pico-8 IS RUNNING, but not displaying, and no way to make it show.

P#95380 2021-07-28 11:15 ( Edited 2021-07-28 12:57)

Run this simple (and dubious) code:

function _update60()

It then show this error:

runtime error line 2 tab 6
< eof >
attempt to call global '_update60' (a nil value)
at line 0 (tab 0)

Go back to code editor: 5 empty tabs have been added.
While the code above may be questionnable (dont ask ;p) it shouldn't create empty tabs. It also seems it shouldn't push any error as there's no pb running the same code with _update in place of _update60.

P#94453 2021-07-04 21:01

Cart #foreverhungry-0 | 2021-06-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cute little guy must keep eating to grow or it'll just shrink back to a young larvae. Use (almost) any key to rotate the opposite way and grab those delicious redish things to grow up to impressive length. Since the game starts slowing down at 700, let's consider this score a winning condition!

Made for the TweetTweetJam 6 in 554 chars. Just click the "code" button above to copy & paste the whole game to any Pico-8 near you.


Eat those juicy red things to grow bigger, or you'll get back to larvae state!


Any button to switch rotation.

P#94211 2021-06-29 16:26


Currently ctrl+Tab switches to right tab, and ctrl+shift+Tab to left tab. There's no way to switch between recently used tabs, which would be very useful on projects over 2 or 3 tabs. For now the only way to achieve this is to continuously grab the mouse, which is quite annoying. I suggest that:

  • that current behaviour is moved to ctrl+PageUp & ctrl+PageDown to go respectively to left & right tab;
  • ctrl+Tab now switches to previously used tab. In fact it should behave like ctrl+Tab in VScode and NetBeans or like alt+Tab in Windows. Ctrl+Tab brings a small window with a list of tabs sorted by history: the top one is the current tab, the one under is the last used tab and is the one selected, the next one is the next that was used, and so on. That list shows as long as ctrl is pressed. A new press on Tab goes down to select the next label; shift+Tab goes up. As soon as the ctrl key is unpressed, the list closes and editor switches to selected tab.

As a bonus, or maybe an easier replacement for a way to switch between recently used tabs: being able to rearrange tabs by drag & dropping then.

That would greatly improve the experience and fun of creating games in Pico-8 editor.

P#92492 2021-05-24 10:49 ( Edited 2021-05-24 10:51)


Alt+up & down allows to go to previous & next function, which is very useful, but sometimes functions are very long, or you have large tables that go lines and lines and you wish there was a way to browse them as easily. I suggest alt+Up & Down also stop on lines containing a comment that starts with exclamation mark (or any other character but this one is simple and makes sense imo) like this:

function _init()
 --!1=default weapon

function thatBigOne()
 camera()--!also stops here
P#92491 2021-05-24 10:16 ( Edited 2021-05-24 10:18)

Hi, here's a cover of Board of Canada's Roygbiv in Pico-8 (with its new sound effects) playing over a tweetcart synced to the music. Because, well, I love BoC and Pico-8 :). Also playing in pattern mode on YouTube where you may also enjoy the original music.
You can play the tweetcart along your own Pico-8 music and it'll sync to it as well. Or it'll play at its own pace if there' no music.
Hope you'll enjoy.

Cart #boc_roygbiv-0 | 2021-04-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#89822 2021-04-01 16:26 ( Edited 2021-04-01 16:30)


Is it just me or did the web player all suddenly become blurry? All Pico-8 games on Lexaloffle look like the pic below. This is on Chrome/Windows 7. This is ok when switching the game to fullscreen though.

P#81686 2020-09-11 07:10 ( Edited 2020-09-11 07:10)

This bug has not been fixed since july 2017: https://lexaloffle.com/bbs/?tid=29699

Maybe it's on AZERTY keyboards only, but it makes the SFX editor painful. Here's what this layout looks like: https://fr.wikipedia.org/wiki/AZERTY#/media/Fichier:KB_France.svg
The keyboard we frenchies use. Sorry. We love our diacritics.

  • the "6" key used for upper G# also decreases current pattern.
  • the "," key (right to "N") used for lower B also decreases tempo.
    Those are really annoying. There's also this which are a bit annoying but I can do with:
  • numpad "+" moves to 4 patterns forward while the "-" above moves only 1 backward.
  • "=" (left to Backspace) moves 1 pattern forward while underscore ("8" main key) moves 4 backward.
P#74021 2020-03-17 22:37 ( Edited 2022-04-20 06:48)

Cart #zuhihenit-0 | 2020-03-17 | Code ▽ | Embed ▽ | No License

Alt+Up/Down keys allow quick functions browsing in code editor, but oddly this is broken on the 3rd tab of my 5 tabs project, where alt+up/down won't go below the 2nd function (all other tabs are fine). Have no idea why, I even got rid of all my code & data to see whether this comes from that. This is the cart joined here: no data, only function names & some comments, but in tab 3 alt+down won't go under the parts_add function.

P#74019 2020-03-17 22:12

I've assembled the new Picade with a Raspberry Pi 4 inside. It boots on the NOOBS SD card, being myself rather a noob once outside of Windows :). Besides the recommended upgrades & updates, I've installed nothing else than the latest Pico-8 for Raspbian, as I want my Picade to be a Pico-8 machine first.

I launch Pico-8 with the command line and use splore to browse favourite games. Everything is fine until I relaunch games either by ctrl+R or the "run" command. And then it's the russian roulette: either the cart restarts, either it simply shut downs the whole Picade. Sometimes it happens after the 20th rerun or more, but this bug is so reliable I use it to turn off the machine instead of using the "shutdown" shell command.

P#74018 2020-03-17 21:43

Cart #justpushthebutton-0 | 2020-03-05 | Code ▽ | Embed ▽ | No License

Digging up old Pico-8 jam games that were only on itch.io. This one was made for the Meta Game Jam 2018.

All you have to do is just push the button. It should be easy, although it's been a long time I didn't do it myself, so who knows? For example, the mouse no longer worked and I had to quickly patch keyboard to control pointer. Just use arrow keys, X and C. Hope I didn't mess things up. Coding is strange: you let everything for a while and when you're back, it's like functions have started a life of their own and nothing works like it used to be. Oh well.

The game runs at 60 fps, which is a bit demanding for the web player. For a better experience it is recommended you run it on Pico-8 (download the p8.png or just enter "load #justpushthebutton") or download the game executables from https://elgregos.itch.io/just-push-the-button.

Have fun!

P#73706 2020-03-05 21:47

Cart #picade-0 | 2020-02-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hi, I bought the new Picade from Pimoroni (also own the previous version) and thought the video showed a cool Pico-8 animation. You can watch it on the product page: https://shop.pimoroni.com/products/picade?variant=29210087489619
Pimoroni kindly gave the p8.png file, but there's a bug where horizontal lines disappear after a while. So I made my own version above. No game, just a cool idle animation. Feel free to use & modify it to your needs and, why not, let us see what is beyond that "Press START to play"! ;)

Below is the original untouched Picade animation by Pimoroni:

Cart #picade_original-0 | 2020-02-22 | Code ▽ | Embed ▽ | No License

P#73350 2020-02-24 16:57

A 2017 game I made but forgot to post here :|
Mix colors spurts and send them to the exit by setting walls and floors. 2017 Fantasy Console Game Jam entry, which theme was "Union", made in 6 days with Pico-8.
Only 18 levels for now, but it's in my "There's potential for a full game" list ;)

Cart #coloredanswers-0 | 2020-02-20 | Code ▽ | Embed ▽ | No License

P#73292 2020-02-20 17:12

Hi, this was first a tweetcart, to which I added some music because, well, I HAD to!
Let's call it a tweetcart with a bonus. Hope you'll enjoy this.

Cart #shelost8bitcontrol-0 | 2019-08-23 | Code ▽ | Embed ▽ | No License

P#66886 2019-08-23 14:25

Cart #43441 | 2017-08-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #43432 | 2017-08-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

My second contribution to the One Hour Gamejam which, as you guessed, about making a game in 1 hour. Wish I had more time for some levels, those here are a bit random and the game could get a bit more interesting with well thought timings. Not enough time neither for a playable random generation. Well, you ain't do much in 1 hour. But this one has sounds, yay!

Edit: corrected a bug crashing the game when accessing last level.

Twitter | Facebook | Pinterest | RedBubble

P#43433 2017-08-19 17:04 ( Edited 2017-08-22 01:13)

Cart #43017 | 2017-08-02 | Code ▽ | Embed ▽ | No License

Cart #42972 | 2017-08-01 | Code ▽ | Embed ▽ | No License

You're the main operator at the Powarvester, one of our spaceships spread over the universe to gather power from local resources. Collect at least 1 gigawatt before moving to next area. The Powarvester has different modes that all need power, so use them wisely!

Use arrow to move target, C to fire Powarvester and X to change Powarvester mode. You can restart or skip area with the Enter menu.


  • on later areas, cops shoot at you but gives 3x the power of other resources.
  • when the "Next level" message show up you can press X to go to next area, or any other key to keep playing. Although there's a bug with cops as they keep shooting, thus depleting your power, so you'd better go to next area anyway.

Please rate this game at https://ldjam.com/events/ludum-dare/39/people-are-the-power. I hope you'll enjoy it, even though there's more work to do (made in 2 days).

Development log

  • 0.5.0: bugfix. Cops kept shooting once area was won, thus depleting player's power.
  • 0.4.2: release

Twitter | Facebook | Pinterest | RedBubble

P#42973 2017-07-31 20:32 ( Edited 2017-08-03 04:24)

Made for the 114th one hour game jam, themed "The Midas Touch": http://onehourgamejam.com/

So here is "Midas Dog", my 1st game jam ever. 1 hour is short... but probably longer than your playing time :)

Cart #42128 | 2017-07-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#42129 2017-07-01 17:46 ( Edited 2017-07-02 20:21)

There's already a tweetjam thread, but how about a movie focused tweetjam thread? That's twice the fun :

  • viewers have fun guessing the movies
  • coders have fun figuring how to suggest a movie in a 140 chars max program

Besides the 140 chars limit, the only other obvious restriction is that it must be about movies, or TV series, cartoons, animes, etc. To make it short: if you can find it on imdb, there it goes. Beyond that, you are absolutely free to do what you want. Making something animated or not. Give clues or not. Hide the answer, give a link to the imdb page for people to check their guess without spoiling the title, or even clearly give the name if you don't want people to guess. You can make something new or an already submitted movie. Anything.

When putting then on Twitter we should use both #movie and #tweetjam tags. Currently, used at once they return no results, so we can make the pair our own while still being part of the global #tweetjam.

One last note:
Viewers can already see our code with the "code" button under the program frame, so there's no need adding it in text area. Let's keep this a visual thread.

Let's begin!

Here we go with 2 movies from the same guy:



Twitter | Facebook | Pinterest | RedBubble

P#40311 2017-05-08 04:43 ( Edited 2017-05-08 08:43)

Here is a function I made that is small and simple but may be useful to everyone. It launches a bunch of functions you've set, checking how many times each can be called in a frame and print sorted results so that the quickest function shows first. So, tailor made for optimisation or just know which is the fastest of many functions achieving the same goal. For example I needed to answer this agonizing question: when drawing a single big "+" sign, is it better to use 2 rectfills but draw twice the center zone, or to draw 3 rectfills (middle bar, plus left and right bars) so that no pixel is drawn twice? Now I'm ready and prepared to meet the Sphinx.

The running example here shows what is the fastest way to clear a screen between a cls or a rectfill (well, I made the wrong choice for months!) Just for fun I added clearing the screen with a bunch of lines and even psets. Surprisingly, lines are not that a bad choice against cls. Maybe there are more efficient ways I don't know, with peek or so. With this function they're easy to test.

The use and process are simple, the code above should be clear enough. If not, just declare an array containing your functions to test, each as an object with 2 properties :

  • name: used for showing results
  • f: your function

Then in _update (or _update60 if you want to get results every 1/60 second) call stat1comparator() with your functions array as argument. stat1comparator will then launch each function as many times it is possible before going beyond one frame and show results once it's done. For precision results also show how many iteration were called before going outside of the frame, and what were the precise time needed (with the limit of Pico float precision). The ratio iterations/time is used to sort the list. Just be aware that to get consistent results stat1comparator needs entire frames, so don't call it after any other processing.

And for the "+" enigma answer, I let you find by yourself :).

Twitter | Facebook | Pinterest | RedBubble

P#40027 2017-04-29 11:55 ( Edited 2017-04-29 20:34)

Cart #39763 | 2017-04-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


I was listening to Amiga music the other day and fell on "Vaxine", a game I played on those days for quite some hours. You ran on a flat matrix, shooting at viruses that kept trying to gather. "That would be a cool game to make in Pico 8", I thought, and voilà! Just the beginning of course. Never made anything in 3D, and well this is neither, as it's just a bunch of factors thown together to bring fake 3D. But it looks cool imo so let's see how far this can go this way.

I still have my "WhoDares" to finish though, that takes all my spare time (update very soon), so Antidote is not in a rush for now.

Twitter | Facebook | Pinterest | RedBubble

P#39765 2017-04-18 17:03 ( Edited 2017-04-23 14:48)

View Older Posts
Follow Lexaloffle:        
Generated 2022-07-04 11:29:50 | 0.217s | Q:80