my first try ever at PICO-8 coding \:D/
sorry for the very bad "music", I did everything in one weekend and the tracker is a bit buggy and hard to use with a french keyboard layout :3
the updated version feature a background starfield, a better logo and the animation use the new _update60 function :)
This is a game we made for the BBQ gamejam http://bbq.extra-coin.fr/
The idea is to a make a mini old zelda game speed run oriented. Have fun!
Arrow: Move
Use item: X
Swap item: Z
Made by Haunted Tie

Controls:
Arrows to move the cursor
Press Z on a unit to select it, then move the cursor to pick a path
X to cancel actions.
Unsettled with the crown, a small group sets off to take the castle by force and defend the throne as their own. Their success will depend on their tactics on the battlefield, and the cunning by which they select their allies.
This is that game your uncle got you for your birthday after picking the one with the coolest looking box, but was too hard and unbalanced for your 8-year old self to beat.
Glad I'm getting to release this before I start work :D Lots of stuff I'm not happy with in this, and lots of stuff that I am happy with. It's a bit rough around the edges, a little too difficult for some runs and (maybe) a little too easy for others. There are definitely some bugs, especially with the enemy AI (but they're not getting fixed - currently sitting at 8192/8192 tokens :P) It's sort of a very simplified tactics-roguelike. It's designed such that you aren't really supposed to win on the first time (or second, or third) thanks to permadeath. You're supposed to play through a couple times and get a feel for how all the units work, what situations they're good in, how many hits from other units they can take, etc. In a perfect world I think I'd have around 4-5 more units in there, but alas, no room.
I think this won't be my last foray into this genre, though. I was a bit out of my comfort zone on this, and I learned a lot about what makes this kind of game fun. I think I'll be able to make something much more interesting the next time around.

I noticed that 8venture ( https://www.lexaloffle.com/bbs/?tid=2247 ) uses an "unpack" function to define tables from strings, which frees up the code space for like, actual code, by making all tables take up only one token.
array = unpack("1,2,3,4,ideclarea,thumbwar")
table = unpack("x=1,y=2,z=-23.12,hello=there")
|
This is great, but it didn't support multidimensional arrays or tables! Considering half of We Missed You is literally a huge multidimensional table, a solution to this could greatly benefit more complicated projects, or just people who like doing everything in hilariously roundabout confusing ways. Now you can do things like thiss::
mission = unpack("x=1,y=3,type=0,ents={{x=56,y=76,props={sdir=0.5,scone=0.125,swing=0.12,rate=0.00869,t=0,rad=64},n=218,tfra=8,type=0,update=pvis},{x=104,y=42,props={sdir=0.25,scone=0.125,swing=0.25,rate=0.00869,t=0.5,rad=48},n=218,tfra=8,type=0,update=pvis}}")
|

Hey guys,
I was playing with crazy idea in my mind again and just wanted to give it a go. I was wondering how hard it would be to create emulator for PICO8. Program that can load catridges and play them (read bbs player without bbs). Since it's all based on lua (witch I have no experience implementing) and I am really bad at bitwise operations (witch are really crucial when working with retro stuff) I decided to create one to learn something new. Here is my first attempt. Far from being good or complete and I don't know if I would ever want to finish it...but...you never know :D
Some facts:
- written in C# .NET 4.5 profile
- used NLua library/wrapper for code execution
- cartridge loading from png files (anyone want .net library for this? I can create one)
- screen is blitted to windows form directly, no graphics libraries used so it's not very fast when scaled up
- implemented features:
- _update/_draw methods calling
- fully working palette manipulation (pal, palt)
- flipping graphics from ram to vram (flip)
- clear screen buffer (cls)
- full implementation of basic sprite drawing (spr)
- some mathematical functions (flr, sin, cos)
Ps: I am Windows Phone user, I don't think there will ever be official player for my mobile platform so I will maybe create my own :D
Current testing cartridge:

Seems like a common request for functions to convert to and from char codes.
Time will show whether it shall be added to the program, but until then you can do it by yourself:
Initialization (59 tokens, 197 bytes):
chars=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
-- '
s2c={}
c2s={}
for i=1,95 do
c=i+31
s=sub(chars,i,i)
c2s[c]=s
s2c[s]=c
end
|
(the blank comment is there solely to keep the editor from glitching out due to lack of escape sequence support)
After this is executed, you'll find yourself with having two tables - s2c, holding char->code pairs, and c2s, holding code->char pairs.
Since using these directly can be slightly less comfortable, here are a couple helper functions:
chr(code) : Returns the char (string) for the given code [13tk\36b]:
function chr(i) return c2s[i] end |
Example: chr(33) == "!"

My first Pico-8 game!
There's actually gameplay stuff this time! Instructions are in the game, 4 enemies are in the game, and you can lose!
The enemies appear randomly, and you have to learn the correct spell to use on each type. After a certain amount of time, the enemy will attack, and with each defeated enemy, the next is even faster. Cast your spells quickly and get as far as you can before being overtaken by the horde!
How to Play:
Boot up your pico-8, load the cart, and run! You’ll see a wand and a target (which is just for show). Use your wand to cast any of the 4 spells (fire, ice, elec, and rock) in the game by matching their directional formula and casting the spell. Every time you run the game, the 4 spells’ formulas randomize, so you’ll need to learn the spells from the spellbook before you can cast anything successfully. You can’t move your wand while looking at your spellbook, though. That’s preposterous! So learn those spells and cast away!
The correct spells to use against enemies never change, so if you die while learning the correct spell to use, you can still use the proper spell next time. But don't wait too long to cast your spells, because your entered spell expires after 2 seconds! The spell expiration never changes, but the time before the enemy attacks does change, so be quick!
Controls:
• Arrow Keys: move your wand
• Z: Cast your spell
• X: Open spellbook
• Z while holding X: Change your wand (just cosmetic)
• Ctrl + R: Restart cart (if you want to change the spells easily)
Plans/Thoughts:
• Save feature for consistent spells/high scores using Lua’s io—is it possible?
• Combo spells. (Ice -> Elec does more damage, etc.)
If you have any ideas, please let me know! I just thought the mechanic would be fun, and I didn’t have any solid ideas for how to play with it, but if you have any thoughts, let me know!
Below is the original proof of concept cart. It contains nothing but casting spells with no time limit. Could be good to practice with before trying for a high score run on the most recent cart! (Note: no high scores are saved yet.)

I was experimenting with png cartridge format (thanks asterick for your awesome work) and I got this little idea:
For nearly every console in the past, there were unofficial, hacked cartridges with unlicensed or pirated games, and this is something that even PICO should have!
Go ahead and grab my pirated copy of Celeste, it's shipped on dark cartridge with custom print on top!
.png)
This: http://forums.tigsource.com/index.php?topic=45904.0 is my "main" project I'm working on (in Unity). As you can see I'm retro buff all the way through, tho similarly to Zep I don't let my designs to be stuck in past and adopt modern features where it makes sense.
The full cartridge size is 32 Kilobytes, but as many of us know, games come in all sizes.
Some games have expansive maps, while others have plenty of code.
Therefore, I propose a full token system.
- 3-4 sizes of maps
- Add a spritesheet at any time
- Have only the sounds you want
- Code would take the rest
I understand that this may take SERIOUS code restructuring, but it would be sweet.

I don't know if anyone else has done a write up on this, but there is actually a pretty solid way to get around most of the data limits on the system, and it's kinda gross, and doesn't with the webplayer. The nice thing is that it gives you a legit file system, and basically limitless binary data!
Here is a proof of concept, I created two files (this one is test.pb)
CLS()
PRINT("")
PRINT("")
RELOAD (0x6000, 0x4300, 128)
LOAD ("TEST2")
RELOAD (0x6100, 0x4300, 128)
FUNCTION _DRAW() END
FUNCTION _UPDATE() END
|
Test 2 contains nothing but garbage code that would crash the machine.
The rational behind this is that:
1) If LOAD trashes execution, it would crash when the new program runs
2) If LOAD aborts the current thread, it would simply return to the prompt with TEST2 loaded
3) If LOAD doesn't allow shared state, it would copy the same thing out of the code area of the cartridge
This test proves 3 things...
1) RUN performs LUA compilation, so LOADing garbage data doesn't harm execution state
2) The existing machine state is preserved after a LOAD call, while altering the loaded filename and data stored with in the cartridge
3) Storage space is essentially limitless.
Basic rundown of what happens with LOAD / RUN
LOAD: Sets the active filename for the cartridge, loads the 32k cartridge into the cartridge buffer, and loads the first 0x4300 bytes into memory (tiles, maps, sounds and patterns)
RUN: Disposes of existing Lua runtime state, discarding any global values, functions, etc, then parses and executes the code stored in the cartridge buffer.
This also means that whatever is in ram at 0x4300~0x7FFF is PRESERVED BETWEEN RUNS. The only downside here is that LOAD will print garbage to the screen, so write to this area after you LOAD, but before you RUN the LOADed cartridge.
So, if you want to get past the data storage limits, use a LOAD without running first.
If you want to get past the CODE limits, store persistent data at 0x4300~0x7FFF and then RUN.

Something has survived from the past
You must kill the last surviving rebels pixels.
Video games must enter the industrial era.
For a maximun profit, bomb the city, nothing should survive in the 15 levels.
This game is the remake of Bomb On Pixel City VCS 2600 which was a demake of Bomb On Pixel City iOS which was a tribute to the vcs 2600.
This game is part of a plan to conquer the world
This game has not been approved for any audience.

Updated: Changed music, and the box sprite, and cleaned up collisions.
This is my first Pico-8 game. :D
Help Stephanie get dressed by collecting boxes of her clothes and accessories, but be sure to avoid gender stereotypes! Pride flags can refill your health.
It's a submission to the FEMICOM Jam #2 at itch.io.
It's pretty simple, but I hope you enjoy!
Warning: There are tiny pixel privates, like the old troll dolls. Nothing graphic, but if you don't want to see them, please don't play this game.

I've been playing way too much Celeste
so much in fact that I got a little bored and decided to see what the game would be like if it were made by an insane person who liked nearly impossible games.
would it be ok to post the cartridge on here, obviously giving credit for the code and sprites I haphazardly edited






5 comments












