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.
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.
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.
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!
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 :-(
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.
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.
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
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.
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 thecartdata()
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.
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.
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!
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]
This is a beta build of a multiplayer vs game inspired from Spinstick, which was originally made by @db0z
Any feedback / bug reports about the game would be greatly appreciated!
Controls / Rules
left / right arrows - move player 1 (pink)
S / F - move player 2 (blue)
Hit the ball above the white line to pass play to the other player
If the ball falls off the bottom of the screen while you are the active player, you lose
You can tell who is the active player by seeing who's paddle is lighter
Changelogs
My Pico-8 version of the 1982 Sega arcade game.
Controls
[X] - Push block/ electrify wall
Thanks To
Finn for testing
Paul Niven ( @NiVZ) for creating such a cool logo (for the third time!)
PICO-8 for creating an awesome "fantasy console"
Version History
- 0.80 - 06-Dec-2021 - Released
- 0.81 - 21-May-2022 - Fixed crash when pengo spawned on block below diamond
Hello! This is my first blog on what I hope will turn into a fulfilling hobby. This is Paddle, my first game.
Some background on me: My experience in computer languages and coding is extremely limited. I played around with a Raspberry Pi when I was in high school - making it into an emulator that played old GBA games. I completely failed my computing A-Level, but I have built a PC. But I’ve always thought being a game developer would be something that would be really cool to be. My interest has just fluctuated a lot.
The first time I thought that I wanted to work with games was watching the documentary, Indie Game: The Movie. But I’ve always been too lazy or been playing too many games to actually sit down and make one. I hope this is one of many that are to come to you, whoever you are.
I'm hoping I am just not understanding the code rather than there is a problem here with the new ability to redirect drawing memory positions.
cls() poke(0x5f55,0x80) for i=0,127 do for j=0,127 do pset(j,i,rnd()*16) end end poke(0x5f55,0x60) memcpy(0x6000,0x8000,0x2000) |
See HERE in BASE RAM Memory layout:
https://www.lexaloffle.com/dl/docs/pico-8_manual.html#Base_RAM_Memory_Layout
If it's not a problem in the language, then what am I doing wrong here ?
. . .
From the comments below it's clear I can only choose from 2-different memory locations. Maybe future Pico-8 will allow upper memory location to draw in. Just trying to find a use for that whopping extra 32768 bytes. :)