A quick gamepad tester I wrote for picotron to test the gamepad api. The tester also supports changing the player number to use multiple gamepads.
I labeled the buttons according to their corresponding keyboard inputs, and layed out the buttons according to how they mapped on my xbox controller.
The two buttons in the middle are buttons 6 and 7, which the readme lists as reserved, but I think represent start and select buttons.
Button 6 seems to map to the start and home buttons, as well as the enter key.
Button 7 doesn't seem to map to anything yet.
As of writing there seems to be a bug in picotron where higher player numbers don't work correctly.
player 0 works properly, but odd numbered players, such as player 1, will have their inputs split across two controllers.
I've also confirmed that as of writing picotron only fully supports up to 4 controllers. If you connect a 5th controller, half of their inputs will register on player 7, and player numbers higher than 7 aren't supported so only half the controller will work.
Update:
Now highlights the player tab when that player's controller has active inputs, making it easier to find what player your controller is mapped to.
Update 2:
Now reports analogue values for the sticks
A Pico-8 port of astrosmash I made back in 2021.
For those interested, here's the source code: https://github.com/TheDuude420/AstroSmash-2021-Source-Code
I've been thinking about ways to execute fast pixel effects on Picotron, and so I'm looking for ways to perform the effect entirely in userdata-land, and display the results as sprites. I've tried a few approaches, none of which seems to be quite ideal.
-
Do math on
f64
userdata, then render that to the screen. This gets me fast math operations, but of course the rendering result is completely garbled. I suppose some pack-ints-into-floats type nonsense could be attempted? But with just basic arithmetic ops this seems like a bad time. -
Do math on
f64
userdata, then cast that tou8
in a loop. This is a lot of time spend calling getters/setters in a loop, and may not be any better thanpset
, not sure. - Do math on integer userdata, then cast to
u8
using theuserdata:convert()
method and display that. This would work fine if I could figure out how to get fast fixed-point going. Unfortunately, div and mod are slow, and shifts don't seem to work.
I think my preferred resolution would be to allow convert()
to go from f64
to u8
, but anything that allows any kind of math with fractional quantities, either floating-point or fixed-point, would be great. Drawing f64
userdata with spr
with implicit casting would be great too. Just trying to avoid explicit loops to get to u8
....
EDIT: The issue has been resolved! You can find your Lexaloffle key at the top of the Humble purchase page!
=================
Congrats on the release, @zep! Just purchased Picotron. I've been watching its development with an excited glimmer in my eyes over the years! It really looks like the perfect mix of specs (really excited about the wavetable sound in particular!) and I'm excited to start exploring my creativity with it.
I've been looking at how to add the product to my Lexaloffle account following the instructions on this page https://www.lexaloffle.com/account.php?page=activate, but have not had any luck with it. Is it correct that the Humble purchases page for Picotron simply does not have the 'Lexaloffle Account Activation' button yet?
I'm trying to make a classic synth pluck sound: a couple of detuned saw oscillators, plus a resonant lowpass filter that quickly opens up when a note starts, then closes back down. Unfortunately, I can't quite figure it out. I have an ADSR envelope modulating the filter cutoff, but since the envelope has a positive polarity and higher lowpass knob values = lower frequencies, the effect is exactly the opposite of what I want: the filter immediately closes down on note onset, then more slowly opens back up.
Is there any way to flip the sign of this modulation? Am I thinking about this the wrong way?
I am using the stock player character system to select a player character at the beginning of the game, and I placed 8 characters in the world. However, the 3 that I created (and placed) last have a permanent "P1" pointer floating above them and can't be selected. Is this normal? If so, how should I go about my character selection? If not, can I fix it?
Controls
<-, -> to move selection
X to select card
Rules
-you and your opponent both start at number 50.
-each round, two cards will be chosen randomly from the deck.
-you can choose and collect whichever you want by pressing X, and your number will be calculated as written on the card.
-the card you discarded will go to your opponent, changing their number.
-after 10 rounds, if your number is higher than your opponents', then you win!
I am trying to run PICO-8 on a Chromebook via the Linux support console Crostini. I have followed a guide (https://www.lexaloffle.com/bbs/?tid=36473) to get it to function, using both the linux x64 and x32 versions of PICO-8 but neither have worked, giving an error saying 'cannot execute binary file: Exec format error' when run. I am seeking support from other people who have experienced similar issues with running PICO-8 on Chromebook.
My system is running on V 122.0.6261.100 (Official Build) (64-bit) of Chrome OS and the laptop build is a Lenovo Duet 3. I have not set up any additional applications (let me know if any are needed) for this process aside from Crostini.
I am attempting to run v0.2.6b of PICO-8.
Help Marcel reach their friend to chill while the hero is away!
This is my first take at making a platformer. I spent all my time and effort on getting a character controller that felt good, so the story and visuals are very bare-bones (pun not intended but let's roll with it).
Controls
- Arrows to run
- O/X to jump
The music can be turned off in the pause menu
Tips
- The longer you press the jump button, the higher you jump
- During a wall slide, you can detach from the wall by pressing the down button
- Similarly, you can go through one-way platforms by pressing the down button
- Spikes don't hurt you if you move away from them
Hello everyone! I'm developing a platformer based on My Hero Academy and for some reason, my player is able to jump while touching a jump-through tile, when they should only be able to jump if they're on top of it.
Does anyone know why this happens?
Code for jumping:
--jump if btn(❎) and player.landed then player.dy-=player.boost player.landed=false end |
Code for landing:
if collide_map(player,"down", flags.base) then player.landed=true player.falling=false player.dy=0 player.y-=((player.y+player.h+1)%8)-1 |
Cartridge below 👇