These days I was working on a dynamic split-screen system and this is the final product! I posted it a few days ago on this Thread!
It uses around 16% of CPU to copy half of the screen to user memory and then back, so plenty of space for you to use for other stuff!
Any questions drop a question on Twitter!
I am running a 4K monitor and my early-2013 Retina MacBook Pro laptop can only do 4K@30Hz
At this resolution the interface in pico8 is mostly unresponsive. For example clicking a colour to change the selected colour in the graphics mode, or clicking a menu bar icon to change mode, just do not work reliably.
here i am clicking like mad to get things to change:
https://youtu.be/nvdamx19JoY
However, if I switch the resolution to 1080p@60Hz then every click is registered as expected.
Let me know if I can provide any debugging info.
pico8 v0.1.11g
macOS 10.13.2 (17C205)
Dell P1415Q


Hello everyone, after a Twitter thread of WIPs and half posted routines, I'm releasing this cartridge containing a few routines to allow making basic split-screen scenes relatively cheaply (around 20% of CPU used at max and 8KB of RAM used as back_buffer.
This isn't a pretty scene or sketch, it's at most minimal, but it shows that you can have two scenes drawn and draw them with a non-axis-aligned delimitation. Is anyone remembered of the DBZ SNES/Genesis fighting games? :D
-- Available functions: - cpy_to_buffer : saves the current state of the VRAM to the back-buffer - drw_horiz_half : draws the back-buffer on the top part to the screen, with the limit being a line located on ([0;y1],[127,y2]) - drw_vert_half : draws the back-buffer on the left part to the screen, with the limit being a line located on ([x1;0],[x2,127) |



This is an alternate method of doing tile animations. This method uses only a single tile per animation, making it easier to pack in a lot of animated tiles into a single tile. It's not the best way of doing this. It's just a way of doing this. :)
Basically it just cycles through the colors in the tile according to the order you want them to appear, and changes them to a new color, also set by you in the code. The upshot is you can fit entire simple animations into a single tile.
(BTW, I'm not claiming credit for this method... it's one of those things that I'm sure a thousand devs before me have figured out before, and probably 10x more efficient ways than I cranked out tonight.) :D





Something I posted hours ago now claims to have been posted ten minutes ago, and indeed, when I look at the absolute timestamp (0:22 local time) vs. the clock (0:32 local time) that's true, so there's something amiss with your timezone calculations, I think.
Let's see what time this post ends up being stamped, versus what time it currently is.
Be right back...


If you click "Code" to show the source for a game in the web player, any glyphs will show up as escape codes, rather than translate to unicode glyphs as you've done recently with cut/paste and printh().
I made a quick repro/example, tacked on at the end of this post.
If I copy/paste from the editor, I get this:
function _update60() l=btn(⬅️) and 8 or 0 r=btn(➡️) and 11 or 0 end function _draw() rectfill( 0,0, 63,127,l) rectfill(64,0,127,127,r) print("press\n⬅️ ➡️",54,58,7) end |
But if I copy/paste from clicking "Code" on the player below, I get this:
function _update60() l=btn(\139) and 8 or 0 r=btn(\145) and 11 or 0 end function _draw() rectfill( 0,0, 63,127,l) rectfill(64,0,127,127,r) print("press\n\139 \145",54,58,7) end |
Here's the example cart:
INSTRUCTIONS
- grab an ingredients "X"
- throw it in "X"
3.two ingredients generate a potion - drink it "X"
basically press "x"
There are 15 possible outcomes.
ABOUT
No goal, just enjoy the randomness.
This game is the result of a 4 day long gamejam.
The only restrictions are "one screen" and "pico-8".
I am still learning, and this is one of my first projects.
Update 0.9.1
- added highscores!
- added crappy background (i can't for the life of me design one better)
Update 0.8
- spirits now eerily wobble, spooky!
- added some particle effects
- SFXs don't have mute notes no more!
Update 0.7.1
- fixed a bug where the player could be so fast as to go through the play area bounds
Press the arrow keys to move the grimmy reaper and pick the souls in limbo to take them to a better place! You have limited time until these souls are lost for ever!
(The target looking sprite is a time boon, btw)
Hi guys! This is my first ever cart I made in Pico - 8 and uploaded to the BBS
As this is a WIP I haven't finished it, not too much is missing but there's some things for the life of me I can't figure out how to fix
-
Almost always spirits will spawn on top of another, it doesn't affect gameplay but I'd like them not to do that but I don't know how to do it. Spirits are added to a list with random X Y values but since this is my first time dealing with lua I don't know how to fix it. Any input will be appreciated
-
I'll add flashy effects for the title and the in game play, such as spirits or the time boon disappearing
-
I'll add a background to the main level in the coming updates
- Add highscores
(the game is too easy as of now)
A special thanks to the guys who helped me/nudged me in the right direction here in the BBS and over at the Discord, you guys rock!


EDIT: This is now postponed while baby is incoming. I'll try my hardest to pick this up in the future but it's not likely to be until at least late 2018. I'm aware that @enargy and @pingo had games in progress, bringing the total potentially to 9. There were also a few others who expressed interest, and I'll probably do one or two more eventually.
If you've already posted a game, thanks for your contribution, and please feel free to withdraw your game if you don't fancy waiting.
Old post begins here:
Let's make a cart of minigames!
Games finished: 6 of 17
Discord: https://discord.gg/rncwcsR
Twitter hashtag is #17in1jam
Resources being used: https://www.dropbox.com/s/oca0s4bsr7pe6dp/17-in-1%20memory%20usage.xlsx?dl=0
Help with reducing tokens: https://github.com/seleb/PICO-8-Token-Optimizations
Help with reducing characters: https://pastebin.com/MVhr16td
Totally been done before (see @josefnpat's carts here). But we should try 16 minigames plus an over-arching "meta" game to tie them all together, give the player a "final score" etc.









I know you've has problems with this before, so thought I'd post.
Inside _init() if I have the following code:
function _init(x) if(x)then ::g:: cls() if(not btnp(5)) goto g end end _init(2) function _draw() print("working") end |
(Yes this is horrible code, but there's a char limit reason for doing it in the game I'm working on!)
Anyway, it works in this standalone situation - when you press X the game prints "working". But if I move the _init() code to my game it stops working. If I change btnp() to btn(), it works fine.
I don't know how else to help identify the problem, I used identical code in both situations, the only differences are that in my game there's a ton of other code in the file, and the init function is being called to re-initialise the game, from inside some other function (the argument for X is used to determine how to initialise the game), rather than being called globally as above.
Is there a limitation on _init() in terms of not being able to guarantee loops or other gameplay logic will work?
I know I'm using undocumented code here, could this be it?
EDIT: I tried it with documented code and the same thing happens:
if(x)then while not btnp(5) do --nothing end end |


Gnimmel
The final game shall be like a reversed lemmings where you try to kill your lemmings (/gnimmel) instead of saving them. You will have a limited amount of chances to kill them before they escape through an exit. These chances are traps which will be activated by gnimmel that are controlled by players giving them tasks. This tasks that the gnimmel will be possible to do are like they are in lemmings (basher, digger...) so you have to command a Gnimmel the correct task in the correct time to kill him.
Controls
Left mouse button - Select Gnimmel
Right mouse button - Deselect Gnimmel
Button [0] - Task 1
Button [3] - Task 2
Battlebone is an arcade stab-em-up, with a vector graphics style.
You are stuck in a dank chamber. Survive as long as you can against the skeleton hordes.
KEYS:
U/D arrow - move forward and backward
L/R arrow - rotate left and right
Z or X - stab
TIPS:
Use your map in the top left corner to get your bearings.
Picking up the giant gold doubloons to increase your health and get a point boost.
Skeletons take 3 stabs to kill.


