Hooked on Amstrad Chiptunes - Volume 1 - Dave Rogers
Experience the glory of some of the most revered 80's CPC/ZX chiptunes from the comfort of your PICO-8 console!
- Netherworld
- Zynaps
- Uridium
- Cybernoid
- Cybernoid 2: The Revenge
- Nebulus
- Marauder
- Stormlord
- Stormlord 2: Deliverance
- Anarchy
- Battle Valley
- Herobotix
- Turbo Boat Simulator
- Bear-A-Grudge
Controls
right arrow - next song
left arrow - previous song
Tech
This cart emulates the Amstrad CPC/ZX Spectrum AY-3-8910 audio chip to output chiptunes to PICO-8's 5512Hz 8-bit mono PCM serial buffer. To feed the emulation it contains a sound driver capable of generating AY register inputs across three channels of tone/volume/noise-enable as well as a single shared noise tone.
The sound driver was derived from 13 different CPC games and one ZX game. All these games had their music composed or converted/arranged by (the legendary, in my opinion) J Dave Rogers, who also wrote the sound driver code for the games as was customary for chiptune musicians in the 80's. This common lineage made it reasonable to reverse engineer the Z80 code and generalize the driver to handle all the games' music.
I think it sounds a little better in native PICO-8 rather than on the web player. Understand however that in the CPC the AY chip was clocked at 1,000,000Hz (and 1,773,447Hz on the ZX), and emulators typically default to sample at 44,100Hz. Whereas PICO-8 ticks at 60Hz and the serial buffer samples at 5512Hz. Only so much can be done - the percussion/noise is especially vulnerable to low sampling rates.
The AY emulation code is augmented to support the waveform visualization by tracking zero-crossings - this extra work can be removed if the goal is pure audio.
Without the graphics, the sound driver + AY emulator runs at a consistent 24-25% of frametime on a 60hz cart. This demonstrates that, for the appropriate PICO-8 game, it's reasonable to completely emulate the music and sfx via the serial buffer. Alternatively the sound driver portion could be used to drive PICO-8's sfx/music buffers in real time which would allow a lot more music in the cart with full audio sample rate quality. Or do both and synchronize native sfx/music with generated serial buffer output.
The game logos were compressed with








I got really bored and a little lonely in quarantine so I'm making myself a little friend to keep me company. It's far from finished, but I thought that even it's idle animation was awful cute and I wanted to share. You can play with the menus by pressing X or O and then any arrow, but they don't do anything yet. I'll add more as I make progress!

A short dungeon crawler.
Made for Dungeon Crawler Jam 2021.
Credits:
- Programming, art : sprvrn
- Music : Nyeti
- Raycasting from lode vandevenne's tutorial (licence included in source code)






The reasoning behind this is rather simplistic. I have only published games for Windows and Mac (and these days I struggle with even getting out for windows) and so I inherently don't get many plays on any of my games. HOWEVER, Pico-8 allows for easy export to Windows, Mac, Linux, and best of all, Web! So my jam games will get max exposure. I also find it hard to work on a blank canvas with no constraints, but Pico-8 has a lot of constraints that could help get my creative juices flowing. It is also a far more code based creation platform than anything I've ever used before, so it'll teach me some ins and outs of how a language works than a standard engine, and maybe with the few inbuilt tools and easy to learn language it provides (Lua) I could use as a stepping stone to use frameworks and code engines like HaxeFlixel or Pygame. I never intend to use it outside of game jams, as my engine (GMS2) is very much good, and not the reason I am thinking of picking up this tool, other than when learning the engine (or maybe I will learn it for a game jam, who knows , not me, that's for certain) Anyway thanks for reading my ramble, I'll post more here when I start actually using Pico-8! Peace out for now :)

So, I'm making a game as a birthday present for my friend. As I always do, I forgot to do it before and am sitting here on the day before. Now, this game is tile based, and I need to mass generate some tiles which do the same thing with different values. Here is a simplified version of this problem:
for v,i in ipairs({33,34,35,36})do tiles[i]=function(mx,my) plr.d=v-1 plr.g=true end end |
My question is, will this work, and if not, how would I go around doing this?

The main map for my super meat boy demake
Use arrow keys to navigate
Z or X to select a chapter
(there is only currently forest light and dark)
original post: https://www.lexaloffle.com/bbs/?tid=42090
edit: this project is discontinued
source will be uploaded to my discord server at #pico-8: https://www.discord.gg/FsYGwsD


My son had some trouble with the controls so I made it only need the arrows. I also slowed the ship down, it was too fast for his little fingers.
Experiments in variable fps animation to simulate drawing / handwriting.
Drawing instructions are encoded and stored as a string in the lua code. Two different encodings ISIDORE and ROXANA were implemented, each with corresponding function used to decode and execute the drawing instructions.
TIP: toggle performance monitor using Ctrl+P to view fps
Motivation
When using animation to simulate something being hand-drawn or handwritten, ability to vary the speed of the "pen stroke" can help make the animation look more realistic and convincing, e.g. faster for straight lines, and slower for tight turns and loops.
How?
With this undocumented function:
_set_fps(rate) |
The wiki seems to suggest that 15, 30, or 60 are the only acceptable values, but with a bit of experimentation I found that arbitrary values do work.


This is a work in progress which started out because my sinc3 tests for 0x0808 looked like landscapes..
Next job is to replace the sinc3 landscape as it's way too expensive (took it from 60fps @ ~0.5 cpu to 30fps)
Job after that is to add yet another endless generator so I can start actually doing the game rather than the background renderer...
Update 1:
Ended up keeping the sinc3, but inlined it for performance. The main performance killer now is the tline sky, so I'm adjusting my goals to aim for 30fps. I've altered the draw distance and hill frequency settings in this version to reflect that.
I've made a few improvements to the hill system to make the levels look more planned.
DESCRIPTION
You woke up today and decided to make a pie. You found a helpful recipe card in a drawer somewhere, but to your dismay found a woeful lack of the required ingredients! Your quest is to find the required ingredients and bake a pie!
CONTROLS
- Arrows: Move
- Z/N: Look at pie recipe
- X/M: Interact with an object
Interact with stuff! If it doesn't help to further your pie-goals, at least it might have some entertaining flavor text!
CREDITS
All the coding, art, sound design, etc. was done by yours truly.
Special thanks to the Pico-8 discord for being helpful and answering my questions!
I got ahold of Pico-8 about 2 months ago, and I started working on this about two days into learning it, so... this took longer to make than I was thinking. But I think it's cute, and I learned a lot, so I like it!










Hello and Welcome to an EPIC ADVENTURE (the epic is a joke).
This is my first game that i Created with Pico 8, so please don't be so hard on me if you don't like something in it.
-Controlls-
Walking = ←↓↑→
Inventory = x
Close Sign = c
Restart after you are dead or after you've Won = x
-Short Explanation-
You are a thing that want's to get in the house.
So you just search for a Key.
If you notice anything Strange like a talking Tree, just ignor it... PLEASE!
-What I wanna see from you-
Yes I want a bit help from you.
I want that you post in the comments any sort of suggestion for this game, because I want to improve the game.
