Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

Here is something I've been working on since getting into PICO-8 this summer.
I wanted to share it before the end of the year...

picoknife

It's Yet Another Commandline Tool for manipulating .p8 and other files.
Useful for batch scripting, theming the HTML player, reverting mistakes, etc.

It has a git-like syntax: picoknife [command] [file] [extra args]

As of this version 1.0 there are 8 commands:

  • map to export a map image
  • sheet to export a spritesheet image
  • sprites to export individual sprite images
  • label to export a label image
  • setlabel to apply an image to a .p8 or .p8.png or the HTML player
  • sethtml to modify the colors, icons, title, metadata of the HTML player
  • colorimage to apply 16-color palette to an existing image file
  • copy to duplicate a .p8 file with modifications

I will continue to add features. Currently only for Windows and Mac, sorry!

Downloads and README on GitHub:
https://github.com/rtouk/picoknife
The full HELP:
https://github.com/rtouk/picoknife/blob/main/HELP.txt

Cheers!
Touk

2
1 comment


The export command and the -export command line option do not flatten #includes when exporting a .p8.png file. A cartridge exported from a .p8 program that uses #includes cannot be run.

2
3 comments


Cart #bullethellin50min-1 | 2021-12-10 | Code ▽ | Embed ▽ | No License

Cart #bullethellin50min-0 | 2021-12-10 | Code ▽ | Embed ▽ | No License

0 comments


Cart #trucolor256-3 | 2021-12-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
17

TO LOAD THIS PICO-8 CART in immediate mode type, load #trucolor256

VVhat's new ?

12/16/21
✅ Changed code so it will load any image, 3-bytes per pixel or 4-bytes per pixel such as images that include transparent layers. Thanks to @jo560hs for catching this error.
✅ Set the code to exit if you choose WEBSITE. No need for it to keep running.

Cart #mayasurama-0 | 2021-12-10 | Code ▽ | Embed ▽ | No License
17

[ Continue Reading.. ]

17
15 comments


Cart #bigiwemoja-0 | 2021-12-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

1
2 comments


[sfx]

This was an exercise I was doing in transcribing music from sheet music - in this case, the first Gymnopédies from Erik Satie's 3 Gymnopédies - and it actually turned out to contain a really interesting little technical challenge.
[hidden]The thing about Gymnopédies 1 from a PICO-8 perspective is that there are simply too many voices in the harmony to contain in four channels. So, obviously, arpeggios.

...but also, Gymnopédies 1 is a very calm piece of music - tormented (one is instructed to play this "Lent et douloureux", or roughly "slow and painful" in English), but emotionally quiet. The plodding beat of the piece is the low bass note on the downbeat, not the middle chords between them, and launching directly at full volume into an arpeggio is far too dramatic and disruptive. So the question becomes: how do you simultaneously fade in and out an arpeggio while arpeggiating?

Which, I mean, custom SFX instruments, of course. But I actually accidentally played myself initially, because the first thing I always do looking at a piece of sheet music is ask, "how large can I make the subdivisions?", and the piece is entirely in quarter notes, so I made my subdivision a quarter note. And if each measure of 3/4 is three lines, then I can't use arpeggios in the music SFX because they overlap - I have to use arpeggios in the custom SFX instruments.

...and there are more distinct chords in the piece than I have custom SFX instrument slots. So I have to compromise. And I can't do much shaping of the notes, because I don't have any subdivisions within them. It functioned, but I was not happy.

This version makes each line an eighth note. Because each line is an eighth note, each block of two quarter notes where I want my arpeggios lands either on the border between two four-line blocks containing no other notes or in a four-line block by itself...

...and therefore I can build my arpeggios directly in PICO-8 and let custom SFX instruments handle the fade-in and fade-out. I have six custom SFX instruments and all the arps are, very nearly, the exact notes in the score.

And I can do more shaping of the other notes, because they cover twice as many lines.

[ Continue Reading.. ]

9
8 comments


I've just used the music() command (other than the game loop, that was the extent of my code) to play two music tracks (with 7 sfx).

function _init()
 music()
end

function _update()
end

function _draw()
end

When I came back to the sfx editor - silence. Pressing keys on the keyboard entered notes, but without the usual and expected sound.

I tested muting and unmuting to no effect.

Pressing space bar for playback had a positive effect - the track played back, and I was able to enter notes and hear them after that.

Tested running the cart again, with the same resulting silence.

I'm running Windows 10 and Pico-8 0.2.4.

0 comments


Cart #unblock-0 | 2021-12-10 | Code ▽ | Embed ▽ | No License
3

a not-quite-finished UI-layout helper based on the idea of working inside "blocks" which can contain smaller blocks - by default the full screen is a block, and then you can spawn smaller blocks inside of that, and inside of those, etc. you can print word-wrapped text into the current block, or if you do any custom drawing of your own, it'll occur in the current block's local space.

i abandoned this pico8 version, because even though i like how the layout API feels to use, when i tried to use it for a "real thing" it was feeling too heavy (token-count and performance-cost) to be practical - but outside of pico8, these penalties wouldn't be relevant, so i may take another stab at it (probably in a different context) eventually.

[ Continue Reading.. ]

3
0 comments


Cart #timmy_2_the_grappling_hook-3 | 2021-12-11 | Code ▽ | Embed ▽ | No License
3


This is a sequel to my (very bad and DIFFICULT) first pico-8 game: https://www.lexaloffle.com/bbs/?pid=84086#p
Hope you enjoy!

3
0 comments


Hi, new to the PICO-8 community (since today) and super excited.

So I'm doing the most basic tutorial and I can't figure this out. When I go to the sound editor, I don't hear the sound I'm creating with my mouse.

However, when I play my game, or when I play other games, I can hear sounds/music. Now from the tutorials I've seen, the sound editor auto plays as you "draw" your sound. Did the UI change and there's a 'play' button?

Because the sound works on games, I'm not sure this is an issue with my pi. Hoping somebody can help out, it's really hard to edit sounds by going to the editor and only previewing while running the game :-(

3 comments


Cart #monster_eye_1_1-0 | 2021-12-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10

A short RPG story inspired in old-school RPGs like Earthbound, Golden Sun and Pokémon. This is my first pico-8 game, hope you like it!

Find patch log for v1.1 at the end of the description.

Controls:

Arrows: Move player - Move cursor
X: Interact - Select
Z: Open menu - Go back in menu - Close menu

Premise:

You are Rio, born with the monster eye, a special ability that allows you to learn the abilities of your opponents in battle. You must stop the never ending winter by defeating the evil idols that reside in the mountain. To do so, you will need to learn abilities, level up your stats, and re-spec your stats accordingly based on the enemies you encounter.

[ Continue Reading.. ]

10
4 comments


Cart #remcode_backbuffer-4 | 2021-12-09 | Code ▽ | Embed ▽ | No License

Description

A small and limited exploration of using screen and sprite memory as front and back buffers in a custom written game loop.

Uses pokes to the addresses: 0X5F54 0X5F55

These new pokes make front and back buffers fairly easy.

The code implements two commands. An overridden CLS, and an alternative function (drawsprite rather than SPR) to draw a sprite to the spritesheet. The programming is not intended to be as efficient as it could be, but instead to demonstrate the capability in a way that I hope is understandable for a wide audience - anyone wishing to read through it and use what they glean from it is welcome to.

If the example is unclear, please see: Wikipedia: Backbuffer: Page flipping, or other online resources.

[ Continue Reading.. ]

0 comments


Cart #feedtoby_test-1 | 2021-12-09 | Code ▽ | Embed ▽ | No License

0 comments


I made this for the Yogscast Jingle Jam 2021

A Maze-based puzzle game where you control multiple characters, some of which have reversed controls.

More at https://geeitsomelaldy.itch.io

Cart #donttouchthegrussy-0 | 2021-12-08 | Code ▽ | Embed ▽ | No License
3

3
0 comments


Cart #zimonanobu-0 | 2021-12-08 | Code ▽ | Embed ▽ | No License


Tank controls, x to shoot.
This is a very rough draft of a game I'm making, I didn't want to deal with collisions so the tank can drive through the walls at this point, that should be fixed soon.
any advice is greatly appreciated as I am still new to coding.

1 comment


IIRC splore will automatically update carts that have been updated on the BBS. However, I miss out on this feature because (1) I use LaunchBox as the launcher for all my games, including those for pico-8, and (2) I rename all my cart filenames so they are easier to manage. Is there anyway that pico-8 can internally identify a cart and automatically update it when it's launched via pico-8? As it is, I have to manually subscribe to every game thread on the BBS for email notifications on the off-chance the author did an update to the game.

0 comments


Cart #age_check-1 | 2021-12-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

This is a small snippet of code that asks the player for their birth date, checks if they're over 18 years old, and either passes or blocks them from playing whatver game is implemented in the cartridge.

If the player already passed the check once, it's saved in the cartdata, so they don't have to do it every time.

To implement this in your game:

  • copy the entire contents of tab 1 into your game code somewhere
  • add 🐱ok=false at the start of your game code
  • add the 🐱init() call in the beginning of your game, but after the cartdata() call. If your game doesn't use cartdata, you may skip this step, but the game will ask for the player's birth date every time it's launched.

[ Continue Reading.. ]

4
0 comments


Cart #pinput_gamepad_tester-0 | 2021-12-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

Pinput gamepad tester cartridge. This won't do anything useful without Pinput, either if you download and run it locally, or if you install the Firefox or Chrome extensions for Pinput to play it here on the BBS website.

4
3 comments


Hi,

I wondered if someone could point me to any good tutorials that will give me some pointers into how to code 3D interfaces please?

If anyone remembers the game Frontier (Elite2) (https://www.mobygames.com/game/amiga/frontier-elite-ii/screenshots/gameShotId,310350/) then I want to re-create something like the 3D starmap in that game, where you could navigate around different stars in 3d, getting information about the selected stars.

Instead of stars, I want to use a similar interface to view and select different projects I am currently managing, where perhaps the size of the "star" or project represented the budget of the project. Its position in the Z axis, might represent the duration of the project etc... and it x and y position on the 3d grid could represent some other parameter.

Basically, I'm tired of showing customers information in the form of spreadsheets and powerpoint presentations and would love to "fly" around the projects in real-time! Time to ditch the boring business software we've become so used to!

[ Continue Reading.. ]

1 comment


Cart #forcefield-0 | 2021-12-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


Controls:
Mouse to move cursor, click to spawn a ball.

This is a test to build versatile force field type diagrams. The magnitude is the map offset by 128 pixels, and the angle is the map offset by 256. Pixel color determines angle and magnitude(as a unit scalar).

The code is kinda messy, as I borrowed some of the objects from another project of mine.

[Playmap]
v128 pixelsV
[MagnitudeMap]
v128 pixelsV
[AngleMap]

0 comments




Top    Load More Posts ->