Log In  

Cart #dynasfx-0 | 2022-06-13 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA


The demo shows how your PICO-8 games could add dynamicity to sound effects depending on what happens and the action involving your sprites, depending on their position, speed etc... not just use a few prefab sfx or playing several different sounds to give the impression they react to the action (e.g. a vehicle acceleration, spaceship thrust).


There are 8 examples (presets, select them with 🅾️ and ❎) of sounds and each shows a simple preview of some game action. To interact with preset previews you basically change the Pitch with ⬆️ and ⬇️ keys.

The Note

At the top you see the two bytes representing the note, their address in memory (it's sfx 1), the values in binary (help you understand how 'components' such as Pitch, WaveForm, Volume, Effect are stored in the bytes) and their corresponding decimal values.
You can use ⬅️➡️ to select a different component and edit its value.

At the moment it's 'just a demo' (although it took me more than 2 weeks, longer than a single game dev) and it still doesn't offer some basic functions to copy into your game to implement dynamic sounds. I'll update it as soon as I test more myself on an actual game.

P#113089 2022-06-13 02:24


the methods to detect or inhibit Pause button apparently do not work using the Web Player Pause button.

More Details:

In my game Amidus I needed to hide the stage during Pause to avoid cheating as it's based on a short time to realise what's the correct path to take.
So I implemented a few methods like checking for btn(6) and even inhibit pause during that short phase with the timer running using poke(0x5f30,1) as you can see in the code (carts below).

As both methods work beautifully using the internal Pause P/Enter, both failed to work using the Web Player Pause button that apparently overrides both checks.

I tried to ask in the Discord #help and they suggested to report the bug here as it's an unexpected behaviour.

On this version you can test the "inhibited Pause" poke(0x5f30,1) method:

Cart #amidus-4 | 2022-06-02 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA

On this version you can test the "Hide stage on Pause" checking for btn(6) during _draw() method:

Cart #amidus-3 | 2022-06-02 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA

P#112673 2022-06-03 13:34

Cart #amidus-4 | 2022-06-02 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA


Any key to start/skip waiting screens.
➡️ Right Arrow to Speed up the loop while choosing the path.
➡️ During the waiting screen at the end of every success or fail, use Right Arrow to -recklessly- advance Level (added for testing purposes but you could use that to test your skills at advanced difficulty, no actual benefit to score obviously, you simply skip easier levels)

Game Description

The 80's arcade game Amidar had a bonus stage every two levels, this pico-8 game helps in training your skills for that stage until extreme levels. The difficulty and complexity of random stages gradually increases at every level.

For those unfamiliar with Amidar: at first it might seem "based on luck" but it's definitely not:
you should choose the correct path to the prize by following an ideal path starting from the bottom where the banana is and then follow the path upwards to know the correct one to choose (read below).

Path algorithm

The movement on path is based on "Amidakuji (Wikipedia)" method of lottery, basically move vertically up/down, follow the first horizontal line you encounter and so on.


It took me a week of development: 3-4 for the actual game, the remaining 3 for music and sound

P#112596 2022-06-02 02:22 ( Edited 2022-06-02 23:47)

Follow Lexaloffle:        
Generated 2022-10-02 08:51:47 | 0.084s | Q:18