Hi all,
just begin to use picotron and it's really great.
I'm trying some picotron features (fortunately it is very similar to pico 8 so it is easy to use the basic commands) but I don't know how to use graphics that are not in the 0.gfx file (I have tried fetch("gfx/1.gfx")) but it doesn't seem to work). Does anyone know how to do it?
Thank you very much in advance
This wallpaper will play Conway's Game of Life on your desktop!
This was a personal experiment to see if I could get Life to run reasonably fast enough to be an interesting wallpaper. The 480x270 resolution makes efficiency a challenge, but with some help from a book of algorithms and some clever thinking, I think the end result is pretty nice.
Installation:
- run "load #conway_wallpaper"
- run "save /appdata/system/wallpapers/conway.p64.png" (you may need to create the wallpaper folder first, if you haven't yet)
- open System Settings and select "conway" from the list.
Unleashed
Infinite runner where you play as a dog getting chased by its owner. The further you get without getting caught, and the more bones you collect along the way, the higher your score. As simple as that.
Demo
How to play
- X/Z to jump
- Up/Down arrows to move
About the game
This is the first game I make for this console, and its development has had quite a lot of changes of direction, so I am not super happy with the final result, let alone the code, which is a total mess. Nonetheless, this has been a super fun challenge that has made me appreciate how incredible this console is and how talented the developers making games for it are. Making this game was a blast!
To install library, use load #json
then ctrl+r
Library will be installed at /appdata/system/lib/json.lua
(Slightly) Modified version of https://github.com/rxi/json.lua
Example:
include("/appdata/system/lib/json.lua") --Make something to encode obj = { a = "hello", b = "world", c = 1234 } -- Encode json encoded = json.encode(obj) print(encoded) -- Decode json decoded = json.decode(encoded) print(decoded.a) |
Behold! The hit thing all the cool Linux kids are talking about for your brand new Picotron!
Usage
- Load and run the cartridge
- Stare at the window (This should make you feel "cool" for being such an epic hacker)
- If your name happens to be different from mine, you can edit it with
CTRL-E
Notes
I acknowledge that this is not run from the terminal
Honestly I just wanted the cute little cartridge png
This is a game I've been coding for a bit, Linecraft! This is my first and biggest demake (though I've been working in other non-published projects before) so I'm very excited that other people will try it!
Also, I'll keep it updated, so if you find any bug, leave it down below on the comments! I'll check them out and fix them in the following versions.
The sounds and music were made by Munchkin (thank you :D) and the code and graphics were made by me.
Thanks to kallanreed for his tline rotation function I used for the splash text in the game.
And also thanks to Felice for their implementation of the OpenSimplex noise generator on PICO-8 that I used for the world generation in the game. The code may look a little different in my cart, but that's due to changes in development (back when I thought this game could be made in a single cart!).
The blocks will fall forever. Run, wall-jump and climb as high as you can before you're crushed or trapped! Unlock more levels by reaching certain heights, and collect coins to unlock hats! Later levels introduce greater challenges and new block behaviors where you will need to develop unique strategies to succeed.
Try the first three levels to master your tower climbing in the free version!
Purchase and download the full version at itch.io!
The full version has 9 more levels and 16 more hats to unlock.
CONTROLS:
Keyboard:
- arrow keys to run, climb, and change levels in the title menu
- the 'Z' key to jump or start a level from the menu
Controls
z = Play game
w = Move up
s = Move down
up = Difficulty easier
down = Difficulty harder
Source code
this project was made using HX-Picotron
which is a project i made to use the haxe programming language with picotron.
the source code for this game can be found here
Update Log
Update 1: the first version, just the basics
Update 2: added dificulties!
Generates a colorspace graphic for the currently loaded palette, and generates colortables for precomputed color blending based on that colorspace.
Supports palettes in hex format. Just drop the palette onto the window to load it before generating the colorspace.
The colorspace is just a gfx file, so it can be opened in picotron's gfx editor.
There are four export modes:
-
Colorspace + Tables - exports the colorspace gfx with all of the currently generated color tables embedded. Saves you from having to generate the tables at runtime, but is the most expensive option for cart space.
- Colospace - exports the generated colorspace. Does not include any color tables, so they need to be generated at runtime or loaded separately.
This is a hard action-platformer fangame based on the Murder Drones indie animated series by GLITCH.
You play as a new disassembly drone that has to complete his training in a virtual environment.
Controls
- Arrow keys to move.
- [X] to flutter.
- [C] to shoot and detonate rockets (when available).
- [↓] to perform a dive maneuver.
- [Enter] for additional options.
Credits
- Autopawn (Discord: autopawn)
- Remi Mixer (Discord: remimixer)
- Crjönch (Discord: crjonch, Twitter: @Slimyappraisal)
- Miszuk (Discord: miszukuwu)
The btn call acts very strange with the joystick where if I were to program
P1.x += btn(1)/125.5 - btn(0)/125.5
It would return the error: “attempt to perform arithmetic on a Boolean value”
Even though btn(1) and btn(0) both return numbers.
Some other things that may be of importance are that I am using the Linux version on my steam deck, and that I could not find startup.lua in my files.
Hello all!
Just grabbed Picotron in the last few days and have been experimenting with it - what a fun environment and vibe the community is putting forth as we all explore!
The main thing I am currently wondering about is if anyone has been able to discover a way to read arbitray files, either as strings or as binary? I know there's a fetch
function that can be used to fetch data from urls or some types of files (text, pngs, etc). What I am not seeing is a way to read files as binary or otherwise non-explicitly supported file types?
The project I was working on was an image viewer that could pull in images from external urls, but they often come in a format that is not exactly what Picotron likes to use, so I was expecting to have to do some parsing of the files themselves - but that doesn't seem possible if I'm unable to look at a file as a blob of data.
I am perhaps just missing a built-in or some other obvious option here, but I'd love to hear from you all if you have any ideas here!
When windows or process lose visibility, the window manager sends the "lost_visibility" event to the process. This unsets the "running" bit (controls whether a process is running or suspended):
-- /system/lib/events.lua - lines 275-277 if (msg.event == "lost_visibility") then if (pid() > 3) poke(0x547f, peek(0x547f) & ~0x1) -- safety: only userland processes can lose visibility end |
The way we can get around this is having our process define a custom implementation of poke that avoids setting that bit. Copy and paste the following into any process that you'd like to keep running, even when it loses visibility:
-- get a reference to the system-defined poke() local _sys_poke = poke local is_visible = true -- define a custom version of the function poke = function(loc, val) -- if we see incoming parameters that would suspend our process... if loc == 0x547f and val == peek(0x547f) & ~0x1 then [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=144309#p) |
My first arcade game on #picotron!
controls: left, right O(z) to fly)
instruction-gameplay: see the attract mode.
Enjoy!
rev 2: Since update on #picotron 0.1.0C the MAP() function stopped working and draw nothing. Hopefully the MGET() is back! So I fixed it with custom MGET() to SPR(MGET(x,y)...) to temporary solve it! @zep got another fix to do for 0.1.0d.
rev 3: added demo to attract mode and improved egg's sprite and enemys flying move.
rev 4: fixed some graphics et level map changes.
rev 5: Nice background obsession drive me to apply this. :)
rev 6: redefined the screen display (thanks to camera() and clip() functions!)
player's birdhead now starts levels at bothom (not get random killed/stomped by others on level's starts!)
This Picotron cartridge can predict the future! Simply ask it any yes or no question, shake the window, and you'll get your answer!
(I hear you can also press z
to get an answer, but that seems less fun than shaking the window.)
This was a fun little project to make. I finally figured out how to edit the cartridge's metadata! (Though I'm still not sure how to do it on a fullscreen cartridge).
I wanted to put a sound effect when shaking the window, but I have no idea how to work the instrument editor lol.
I did not find a global "feature request" thread, so I've made this one, sorry if I've missed one.
I'm really enjoying picotron, and it feels like a breath of fresh air after all the modern software we've gotten so used to!
The animations, customization and everything else is so awesome! And the community has jumped on the train to create so many useful commands already, like the yotta package manager, etc. It is great to see how expandable the system is.
Yet I feel like there are a few things, that would be very nice to have, that we can't really implement ourselves right now, as far as I'm, aware. I will list them here, and please feel free to add in the comments. Hopefully this will be a helpful thread for @zep
- I don't think there is a way to implement the
reboot
command without system-level code right now, yet it can be very useful at times - I think adding sound effects to some actions would greatly increase the system charm!
- Maybe I'm missing something, but I do not think there is a way to change the system apps permanently, aka make them survive the system reset. I was playing around with trying to modify the file explorer to have a right click menu (delete, rename, info, etc), but the .p64 files seems to be reset every time. Same applies for the desktop, for example, if not modify it completely out right, maybe we could have some system-level right-click menu functionality? Would be amazing
The Evolution of Sunflower Biomorphs
This cartridge implements a model of directed evolution, with the player providing the selection pressure. Using the mouse, we may choose one flower from a grid of randomly generated flowers. The chosen flower becomes the "parent" for the following generation.
Each simulated sunflower contains a unique set of "genes" that code for the size and number of petals, as well as their color. When the user picks the parent of the next generation, the screen is cleared, and the flowers are repopulated with mutant genes derived from the parent's genes. The user can put selection pressure on specific flowers, for example, by choosing the one with the largest petals.