
Feature Overview
BPACK() pack the value of the bit specification with bit width.
- If multiple bit values are specified, pack toward the most significant bit.
- To start bit packing from the decimal point bit, set [number s] to a negative value.
- If there are fewer bit width elements for the value to pack, the bit width elements are rotated.
- This function consumes 38 Token.
v=bpack({8,4},0,0xff,0xb) ?tostr(v,1) -- 0x0bff.0000 (bit-left-shift:0) v=bpack({8,4},4,0xff,0xb) ?tostr(v,1) -- 0x0bff.0000 (bit-left-shift:4) |
This function is included in the KNUTIL library.
release note
This is probably a huge request, but it would be super useful for me.
Nowadays, most of my Pico-8ing takes place on pico-8-edu.com on a school-issued chromebook. Which means it's bad. It randomly decides to sign me out, reload tabs, and/or clear my downloads folder. So I have to backup all my projects to Github daily or I risk losing my project. My friend @Ummmm_ok lost progress on like 3 games he'd been working on when his tabs reloaded and hadn't backed up in a while (he has the same situation as me).
It would be extremely nice (in my opinion) if the education edition worked a bit more like Scratch, where the projects are linked to an account and saved in the cloud. That way, it wouldn't be as much work to back it up all the time.
Perhaps there would just be a button in the top right corner with your username and profile picture. When you click it, it gives you a list of all carts saved on your account. Then you can click one to load it. It would autosave like every 30 seconds or so, or alternatively you'd have to manually save like it is currently.







i did a cover of starjump from Celeste for @ooooggll and thought i should put it here :)
i quite love love love starjump but couldn't do it justice (especially the baseline, anxiety parts) but whatever hope you like it.






Arrow keys - Move cursor
(X) - Confirm, pick up pieces, drop pieces
(O) - Cancel
Enter - Menu
Shape of Mind is a simple puzzle game similar to Solitaire card games. Connect shapes by dragging them on the board. Shapes of the same color won't connect. You can move strips of connected shapes by grabbing the top-most shape of a strip. Drop shapes onto the Dreamer to begin a Halo. Shapes in the Halo cannot be removed. Once a Halo is complete the shapes will disappear. Complete three Halos to clear all the shapes and win the game!










Feature Overview
BUNPACK() slice the value with bit width.
- by specifying the argument after [number w], a value of up to 32 bits can be sliced.
- set [number s] to a negative value to start the slicing from the decimal point bit.
- This function consumes 30 Token.
a,b=bunpack(0xf8,0,4,4) -- Value, First bit-shift, bit-width, ...[bit-width] ?a -- 8 (0x8) ?b -- 15 (0xf) |
This function is included in the KNUTIL library.
release note
stars={}
for s=1,10do
add(stars,{x=128,y=128,spd=rnd(3)})
end
for i in all(stars)do
i.x-=i.spd
pset(i.x,i.y,7)
end
hey! super quick and basic question, feel like ive definitely done this before but i am just not thinking hard enough rn but why isn't this working? no errors are being thrown so i feel like im definitely forgetting something super basic thats making it all break but i am still a beginner and can't seem to figure out what. ty for any help!

.png)
vector.p8
a simple and lightweight (in tokens) vector math library for PICO-8.
usage:
load #vector_p8
and save as such: vector.p8- remove all the demo code; it's in the second tab
#include
in any cart you want
functions within:
> NOTE:
> vectors are just normal Lua tables with x
and y
fields, so you can pass any table that contains x
and y
to any of the functions and they will work regardless.
creation and management
vector(x,y)
- the main function. x
and y
default to 0
v_polar(angle, length)
- makes a new vector using polar coordinates
v_rnd()
- returns a normalized vector with a random direction




I'm going to start with my general understanding and label questions [Q#] with the hope someone can fill in the blanks. Consider the discussion of 'cost' in terms of speed/cpu. I'm hoping there's a general concept I'm missing that will cleanup the flurry of questions around [Q2], regardless please bear with me:
General code is written topdown like the below where you define the function at the top and then you can simply call said function below that point to access the block inside. I don't fully understand the cost, in terms of lua itself, associated with defining 'function a()end' (the pico8 wiki has general pico8 cycle costs). My understanding though is the program won't look inside of the function 'until' I call it and so there is simply some generic predefined 'base cost'(cpu cycles) to defining a function and this cost is not affected by the number of parameters or whatever is inside the function....tldr it's always a flat cost each time the compiler/better-word runs down that part of the page and sees you want to define a function. So this usually amounts to the general idea of 'define the function once at the top of the code' and then call it as many times as u need where u need to after:



I am running into a curious situation, @zep, regarding Pico-8 when it comes to lowercase letters.
For instance, in new code type this:

To type the lowercase letters you will need to press CTRL+P first, then type the letters, then press CTRL+P afterwards to return to normal uppercase letter mode.
Now highlight the code. The easiest way to do this is to triple-click it. Press CTRL+C to copy it.
Now paste it in any text editor like Notepad or even a message in here with CTRL+V. You will get the following:
a="abcdefg 𝘢𝘣𝘤𝘥𝘦𝘧𝘨"
Why is the text italicized ?
If you run the code and then use printh(a,"@clip")
and then CTRL+V in the same text editor, you get this:
abcdefg ABCDEFG
Which is think is more correct. What do you guys think is going on here and are you getting the same results I do ?







Hello, @zep.

You have seen that loading pause that appears in the top-left-hand corner of the screen every time you use CSTORE(), RELOAD(), or EXPORT (PNG) in your code. This is voluntary. I'm certain you chose it for a good reason. Sometimes I can't see the reasons you do. Yet it's not from not trying to.
I feel, however, the delay is artificial and unnecessary. You can prove this by IMPORTING a PNG image and it loads immediately with no delay at all, inside your code or out.
So how about this ? You have the pause when you use it the first time running if you must. Then you can continue to have the pause each time for every time you change the filename. However, if it were used in such a way that only =1= filename were used, for instance, to make it a random access file to save your current work, then it would be most helpful to me, perhaps to others, to remove that pause.
So your work may be saved automatically every minute or so minus the icon and timeout animation.

Interview With Unikotoast Creator of "Buns: Bunny Survivor"-Pico-View #2

Uniko:@unikotast
U = Uniko

Marina:@MarinaMakes
M = Marina

Their games:
Buns: Bunny Survivor (click link)
Witchcraft Tower Defense (click link)
M: So, in your own words, who are you and what pico-projects have you made?
U: I'm a begginer indie game dev, I've started playing around with Pico-8 around 7 months ago. I really liked Vampire Survivors and wanted to make something similar but I did not want to invest a lot of time into learning game engines so Pico-8 was perfect. I never ever did anything gamedev related but I have a decent experience in software engineering. I only made 2 games https://unikotoast.itch.io
third_person_camera
i want to make a 3d game in pico8, but i without time to spend in gamedev ,with the time i have left i doing some camera work , diss a tps style camera(i have to charge some variables to accommodate to the pico8 128x128 screen) , i hope you all can find a good use to it , i also want to thanks the help i got from freds72 (the guy who ported doom to pico8), and again i using sokpop sorce code as reference.

