Log In  
[ :: Read More :: ]

Cart #37156 | 2017-02-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hello there, I've been working on this piece of software called midi2pico
It does what it implies, converts midis into music for pico-8

I've recently just added proper drum support, so in celebration of that I want to release this little demo.

Come checkout midi2pico at github: https://github.com/gamax92/midi2pico

It's a very configurable midi conversion program, with the ability to mute channels, change volumes, and to shift pitches to fit into pico-8's audio range. midi2pico attempts to arrange midi data in a logical way, storing the beginning of a song at sfx 0 and the end of the song near the end of available sfx.

MIDI Format 0, pitch bends, sfx deduplication, silence removal, and now drums are supported. A midi instrument and drum to pico-8 translation table is supported, though not very populated and most instruments use a default conversion. Look for 'Instrument to PICO-8 Map' and 'Drums to PICO-8 Map' inside midi2pico.lua

A separate utility is also included for debugging midi files called midi2note. midi2note shows the end result after midi2opus, opus2score, and score2note conversions that midi2pico also uses.

Installation is easy, all you need is lua 5.2 and the MIDI library, which is available in luarocks as 'luarocks install midi' or download the MIDI library directly here and place it along side midi2pico.lua

lua 5.1 is also supported, but you will need a bit32 backport which is also available in luarocks as 'luarocks install bit32'

P#37155 2017-02-04 17:46 ( Edited 2018-05-17 20:47)

[ :: Read More :: ]

Cart #34978 | 2017-01-05 | Code ▽ | Embed ▽ | No License

P#34979 2017-01-05 02:44 ( Edited 2017-01-05 07:44)

[ :: Read More :: ]

I did a small patch to SDL2 that should fix using the custom glyphs in 0.1.9, so until 0.1.9b is released this should suffice

This also fixes getting a ding/beep sound when trying to use the custom glyphs, the version of SDL2 that ships with PICO-8 is too old


--- a/src/video/windows/SDL_windowsevents.c 2016-01-02 13:56:31 -0700
+++ b/src/video/windows/SDL_windowsevents.c 2016-09-29 21:02:54 -0600
@@ -619,6 +619,7 @@
         /* otherwise fall through to below */
+    case WM_SYSCHAR:
     case WM_CHAR:
             char text[5];

The change here involves adding in WM_SYSCHAR support since, normally pressing a key produces a WM_CHAR event, but Alt + Key generates WM_SYSCHAR which SDL2 doesn't handle.


No idea if this change adds in any issues but I've not been able to see any.

P#29694 2016-09-29 23:06 ( Edited 2020-01-17 20:52)

[ :: Read More :: ]

However, not in Android.

Got bored, set up Arch Linux ARM.
Got angry at freedreno Segmentation faulting.
Wasted several days compiling debugging versions of programs and trying to fix the crash.
Fixed freedreno (libdrm needs --enable-freedreno-kgsl)
Ran PICO-8:

Keyboard is the linux 'onboard' program, set to run on top of all other windows.
(Screenshot is resized, otherwise it would be absurdly huge due to my DPI)

(Renamed title to hopefully remove some confusion)

P#23171 2016-06-19 00:46 ( Edited 2017-02-16 09:39)

[ :: Read More :: ]

Cart #22286 | 2016-06-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

poke(0x5F2D, 1)

stat(32) -> X coord
stat(33) -> Y coord
stat(34) -> button bitmask (1=primary, 2=secondary, 4=middle)

You should probably limit yourself to using the primary button, not everyone has a middle mouse button and dunno how secondary button would work on a touch device. You should also be using the mouse to enhance a program, not for it to be the only control, or else you make it so anyone lacking a mouse on whatever device they're playing PICO-8 on is unable to use your cart.

EDIT: apparently it doesn't work that well on a touch device, atleast PocketCHIP:
"I tested the mouse support on PocketCHIP. It didn't work well. It seems to cannot detect mouse release (touch up)." ~ oinariman

A cheap way to do mouse press/release is to store the result of stat(34) in some variable at the end of the frame so that during the next one you can see if they differ and then respond on that.

P#22278 2016-06-04 16:17 ( Edited 2018-03-23 10:34)

[ :: Read More :: ]

Cart #21625 | 2016-05-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Mostin's having a Meltdown, can you help him locate his car keys?
He told me he lost them down out back near the barn gate, but that's a long long hike.
Over massive mountains and deep valleys, but it's all right, because he'll give you a pay of 60 Noblus!

Worth it, ... right? ... right? ...

EDIT: Alright, final p8jam2 version, I think I've gotten down what I wanted to accomplish.

P#21056 2016-05-21 23:05 ( Edited 2016-06-21 16:04)

[ :: Read More :: ]

Cart #badapp12-0 | 2019-11-29 | Code ▽ | Embed ▽ | No License

Old versions:

Cart #20057 | 2016-04-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #20069 | 2016-04-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Decided to write an encoder for 128x128, 2 color, 1 pixel scrolling, and one rectangle per frame
After a bit of tweaking, it outputted this. Some parts of the video are entirely unrecognizable and just look like jittery boxes sure, but it's interesting.

Ignored the data for left and right scrolling, it's invalid.

Regenerated a new rectangles version with valid scrolling data + the extra tweaks.
8% better

Added circles
Fixed left/right pixel scrolling: the encoder was outputting garbage due to a typo.

Rewrote encoder in C
Added faster scrolling
Left space for music and sfx

P#20028 2016-04-27 23:29 ( Edited 2019-11-29 18:49)

[ :: Read More :: ]

Cart #19319 | 2016-03-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Old versions:

Cart #19303 | 2016-03-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #19297 | 2016-03-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #19295 | 2016-03-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

It's a spinning globe.

Brightened things up a bit!
Fixed a warping issue
Increased the horizontal resolution of the map
Added the vertical spherical distortion to go along with the horizontal

Made the globe spherical

Fixed the jittery issue

P#19296 2016-03-18 22:28 ( Edited 2016-12-12 05:43)

[ :: Read More :: ]

Cart #17561 | 2015-12-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Got bored and wrote a textured wall renderer.
If you really wanted to you could simply replace sspr with line and have a colored wall renderer.

P#17562 2015-12-06 16:27 ( Edited 2016-05-06 21:17)

[ :: Read More :: ]

Cart #17544 | 2015-12-06 | Code ▽ | Embed ▽ | No License

Still working on it, but it's gotten to the point where all major features have been implemented and it's winnable.


You're solving a bomb with a certain number of digits (depending on how many you choose), by rewiring and replacing modules. How hard could that be?

Panel overview:
You'll view a grid of 4x5 panels, each corresponding to an element in the number, as you solve circuits, the panels will change to green and represent a part of the number. When you're confident in what the number is, press X and select the number. You can only do this when you've solved two circuits. Each panel must be guessed correctly to win the game, and if you guess incorrectly ... well ...

The circuit:
Pay attention to what flashes briefly, as it won't be said again until you complete a module. Go from 1st to 2nd to 3rd, cutting each side of the module, removing the old one, and soldering the new one on. When you're "cutting out" the modules, you replace the module you're working on with a wire (the grey rectangle), and if you're "replacing" them, you replace it with one of either same shape or same color. It won't be both, and you might have to try either to figure out what the circuit wants. Once you figure it out, every other module will follow the same rule.

No you can't just cut off a side of the circuit and then resolder it, that won't work.

(Havent worked on this in forever so might as well just move it to Cartridges, it's playable at the very least.)


v0.0.2 - 17544:
Fixed bug in number preview causing the wrong sprite to render

v0.0.1 - 17497:
First released version

P#17498 2015-12-04 21:53 ( Edited 2017-03-30 05:24)

[ :: Read More :: ]

Cart #21201 | 2016-05-23 | Code ▽ | Embed ▽ | No License

The object of the game is to blast enemy aircraft out of the sky... and dodge ground missiles!!! Zero in on enemy planes! Bank left, bank right, dive, climb out! Watch your elevation! Keep track of the fuel! Run out of ammo...land and refuel...take off again!

For Your PICO-8 Video Game System
You should download and play it though, the web player seems to break some minor things.


Update 1.0.2b:
Fixed bug with reset causing the cartridge saving icon to appear.
b: Restore btn on reset

Update 1.0.1a:
Enemy won't fly so low to the ground
Changed rain effect to lines
Smoothed out rotation
Fixed rain effect when rotating and takeoff
Reduced ground strike effect
Added safe zone
Markers are brightened at night

Update 1.0.0:
The original version.

Older Versions:



P#16866 2015-11-21 23:37 ( Edited 2016-05-24 00:07)