Hello!
My name is Mark and I curate a Pico-8 arcade cabinet at a venue called Wonderville in Brooklyn NY. We've been running this residency for several years and the hardware we use is a Raspberry Pi 3 running PicoPi by Guillermo A Amaral. Guillermo tragically passed away in 2020 but his work is archived here:
https://github.com/keints/picopi
Essentially, if a cart is named "rom.p8" or "rom.p8.png" the Pi will autoboot into that rom. This has worked successfully for us for 3 years and I've been able to update Pico8 just by replacing the "Pico8" folder in the root directory.
However, our latest selection for the residency - Oblivion Eve - uses a multicart and we're getting a lot of errors referencing files. Renaming one of the files to "rom.p8" causes the references between the other files to break, so when the player dies, it gets stuck in a "Download Failed" loop and the arcade needs to be reset. I've been working with the developer to try to fix this but we seem to be at an impasse. We've tried creating an alias or a shortcut to the main file and including the data files as well, but none of this seems to work.
Hello, this is another game, and it's called, another game, right?, it's confusing.
In this game, 3 different genres of video games are mixed where you will have to overcome different obstacles
-
Platform, in this one it is like a classic game where you find all the keys to reach the goal.
-
Shoot. It's a game where,
Oh no, an alien, well, you know what to do. - Metroidvania. Here you will have to find all the skills to pass.
Good luck traveler
![](/media/61900/7_pico-8-pico8-ava-shad.png)
![](/bimg/pi/pi17.png)
![](/bimg/pi/pi0.png)
I just discovered Pico 8 in the last two weeks. Lua is new to me, but seems pretty simple (EDIT - lua tables are confusing), so this is cool.
I love the old console style of most of the games here, and this seems like a great place to make a first game.
I got the tunnel mechanic working the weekend for this one. There's a sort of centrifugal force that is applied to the player's ship as the tunnel turns. I'll be able to have a couple ship options with different masses and different flight behaviors!
TODO List:
- Colors and background decorations
- Ship animations
- Enemies of a few varieties
- Title screen and ship select
- Score tracking
- ... ?
Stand Elsewhere re-imagines Stephen King's novella "The Body", perhaps better known for its 1986 film adaptation "Stand By Me". While King's story takes place in his favorite fictional Maine town of Castle Rock, the film canonically moves Castle Rock to Oregon. So, it's a story about some folks walking along a trail, in Oregon, managing meager resources on a tight deadline, and literally facing choices like "hey there's a body of water in our way -- should we detour around it, or just walk right through and hope nothing bad happens"?
![](/media/62790/tens8.png)
![](/media/86328/4_cort.png)
![](/media/88479/3_small-coffee.jpg)
Safe Crackers
Dive into the world of fast-paced safecracking with Safe Crackers! Armed with nothing but your wits and a mysterious one-button gadget, you’ll spin, time, and crack your way through increasingly challenging safes whilst uncovering quirky treasures.
A single button stands between you and glory, are you ready to become the ultimate safecracker?
Controls
X - that is all! Note - on some controllers this may map differently, on an xbox controller PICO's X key maps to B, for example.
About
My submission to the 2024 1-Button Game Jam. Built using PICO-8. I had two goals in this jam:
- Improve my understanding of trigonometry in the context of game development; hence the circle based mechanics.
![](/media/14590/2_2bitchuck.png)
![](/media/92361/gif_3.gif)
Hi all, we are excited to share our first full Pico 8 project, called It's Ok To Jump Down. Run and jump your way through randomly generated islands to collect as many coins as possible. Spend your coins at the shop to unlock upgrades and most importantly new biomes to progress further. Finishing the 6th biome earns you a fun reward for your hard work, but don't be afraid to play past this point for a harder challenge.
The game centers around the water-jumping mechanic. Standing under a waterfall fills your water tank(s), which allows you to perform strings of jumps to collect hard to reach coins. You can also refill mid-air.
We really hope you enjoy!
![](/media/33245/2_jumper_v0 24 0_8.gif)
![](/media/84596/9_ChicoIconP.png)
![](https://www.lexaloffle.com/bbs/files/33245/250px-Gundam.jpg)
![](/media/2185/Invader.png)
![](/bimg/pi/pi17.png)
![](/bimg/pi/pi6.png)
![](/bimg/pi/pi10.png)
When the AI plays itself in my game, it is too much for the _update() so PICO-8 drops _draw() frames. The moves are correct, but its awkward because both pieces move at once.
How do I remedy this? Is it a coroutine I need? I've been playing with them and have gotten some crazy results, not really knowing what I am trying to accomplish. But is that even the right approach?
Or can I make some kind of delay between moves to give the cpu time to catch up? I tested by making it only run the engine after a button press and it works fine.
I also tried calling flip() explicitly after the resource-heavy function but no dice.
any pointers are appreciated.
![](/media/82211/7_realshadowcaster.png)
![](/media/92361/gif_3.gif)
Hey folks!
This is my first time using pico 8 and my first cart! It's an auto-battler where you make decisions on who to add to your team. Units have various combat styles, and some have non combat abilities as well.
Edit: Updated cart, found logic error in the cheetah, it is now a glass cannon just as I designed :3 And changed sprite colours of wolf to make it stand out from the porcupine.
![](/media/106899/itch_demo_1.png)
![](/media/106899/itch_demo_0.png)
![](/media/75969/pet the cat 2_5.png)
![](/media/106899/summerTimeSplashYCH.png)
The Free Lands, which has an ID of dekasimiha, is a "sandbox" game for Pico-8 where you can mine trees, explore castles, see ruins, find gold, collect enough keys, and destroy enough bosses to win! The game is in its early Beta stages, so don't expect much.
Features added in v1.3.2 (the latest): New keys, new areas (castles and ruins), a battleaxe added to the game, inventory expanded to tools, a new "tutorial" area that explains some mechanics and the game, and a new tree texture.
If you play this game and want to become a "registered" beta tester in the credits (once those get added... lol) then you can comment on this and say you played the game and want to be a beta tester! Thank you!
![](/media/67356/33_divoom_create_GIF.gif)
![](/bimg/pi/pi14.png)
![](/media/82211/7_realshadowcaster.png)
@toadofsky
I moved the conversation to chat so as not to clog up the cartridge section.
in response to your last post;
how are you going to hook up PICO-8 to the internet though? Can you do that?
![](/media/112843/9e53f086d03e49ed.jpg)
![](/media/92361/gif_3.gif)
Jorth
A small stack-based language interpreter implemented in Pico-8, oh and a text editor too. It's a programming toy. If you know Forth, this language won't be too hard to learn.
Controls
Ctrl-G: Switches modes
Ctrl-D: Deletes the current code
Ctrl-C: Copies the code (bugged)
Ctrl-V: Pastes whatever is in the clipboard (bugged)
Ctrl-H: Replaces the current content of the program with a help menu
Click to run the code.
Changelog
0.1:
- First version!
0.2:
- Added Ctrl-H for docs
- Added STOP intrinsic
0.3:
- New intrinsics for working with Lua
- New docs for IF-ELSE, DEF, and Lua intrinsics
- Smarter error messages
![](/media/69779/Screenshot 2022-09-10 8.00.05 PM.png)
![](/media/82211/7_realshadowcaster.png)
![](/media/53894/japi.jpg)
![](/media/25862/2_pyro_30.gif)
![](/media/25862/pyro_34.gif)
-= PYRO : World Espionage =-
OVERVIEW
Spread chaos as a secret agent on a vital mission of destruction. Infiltrate sites around the world to recover or destroy top secret files, then burn the evidence as you make your escape. How far can you go?
Based on the DOS game Pyro II (itself based on the Apple II game Firebug).
INSTRUCTIONS
Shortly after entering a floor, your Fuse will ignite - use it to burn as much as you can before making your way down the exit stairs.
- Use Gas Canisters to spread gasoline, or leave them behind to cause explosions
- Only some walls burn, others cannot be burnt, though they can be exploded
![](/bimg/pi/pi26.png)
![](/bimg/pi/pi6.png)
![](/media/2185/Invader.png)
![](https://www.lexaloffle.com/bbs/files/12806/santo.jpg)
![](/media/94681/4_MCGstar.png)
Hello,
I am simulating a ball being dragged around by a player. I'd like to create some animation to simulate that the ball is rotating (top-down view). I am trying to do that with a light source on top of the ball but I can't quite get it working correctly.
Looking for advice or some pointers to good tutorials on this subject.
Thanks in advance
function _init() player = {x=64, y=64} end function _update() local move_x, move_y = 0, 0 if btn(0) then move_x = -1 end if btn(1) then move_x = 1 end if btn(2) then move_y = -1 end if btn(3) then move_y = 1 end -- update player position and animation if move_x != 0 or move_y != 0 then player.x += move_x player.y += move_y end update_ball() end function _draw() cls() rectfill(player.x, player.y, player.x+8, player.y+8, 8) draw_ball() end --ball ball = {x=80, y=80, vx=0, vy=0, length=24, friction=0.9, mass=5, pull_force=0.2} ball.hitbox = {2,2,6,6} ball.name = "ball" ball.radius = 5 -- in ball initialization ball.light_pos = {x = ball.x, y = ball.y} function distance(x1, y1, x2, y2) return sqrt((x2-x1)^2 + (y2-y1)^2) end function update_ball() local dx = ball.x - player.x local dy = ball.y - player.y local dist = distance(ball.x, ball.y, player.x, player.y) if dist > ball.length then local angle = atan2(dx, dy) local pull_strength = (dist - ball.length) * ball.pull_force ball.vx -= cos(angle) * pull_strength ball.vy -= sin(angle) * pull_strength end ball.vx *= ball.friction ball.vy *= ball.friction ball.x += ball.vx ball.y += ball.vy if ball.vx != 0 or ball.vy != 0 then local move_dir_x = ball.vx > 0 and 1 or (ball.vx < 0 and -1 or 0) local move_dir_y = ball.vy > 0 and 1 or (ball.vy < 0 and -1 or 0) ball.light_pos.x += move_dir_x * 0.5 ball.light_pos.y += move_dir_y * 0.5 -- check if light has reached ball edge local light_dist = distance(ball.x, ball.y, ball.light_pos.x, ball.light_pos.y) if light_dist >= ball.radius+1 then -- move light along the direction of movement ball.rolled_under = true ball.roll_under_timer = ball.roll_under_frames -- reposition light on opposite side of ball and continue moving ball.light_pos.x = ball.x - move_dir_x * ball.radius ball.light_pos.y = ball.y - move_dir_y * ball.radius -- immediately continue moving in the same direction ball.light_pos.x += move_dir_x * 0.5 ball.light_pos.y += move_dir_y * 0.5 end end end function draw_ball() line(player.x+4, player.y+4, ball.x, ball.y, 13) circfill(ball.x, ball.y, 5, 1) -- light spot circfill(ball.light_pos.x, ball.light_pos.y, 1, 7) end |
![](/bimg/pi/pi1.png)
![](/media/82211/7_realshadowcaster.png)