Log In  
[back to top]


A heads up for Voxatron users -- the first version of the Lua api will be out next week in 0.3.5!

Pictured above is the result of drawing voxels directly into a room's map. The 0.3.5 api also provides access to actor attributes and state, spawning, camera control, and direct access to the display. The entire PICO-8 api is in there with some 3D counterparts (line3d, box, sphere), and it's possible to import a pico-8 cart into the resource tree, place it in a room, and run the cart on a single slice of the display. The .p8 cart shows up in the resource navigator, and is placeable in the room like this:

The code can also be edited to make slight adjustments for the 3d display:

In other news, I've updated the website with mobile-friendly cart listings and touch controls for the carts. It's still a work in progress -- the sound in particular is very choppy or missing altogether. But apart from that it is quite useable. If you have a modern phone or touch device please try it out!

29
15 comments



Hey All -- PICO-8 0.1.10 builds are now live on Lexaloffle and Humble!

Update: 0.1.10b is up with bugfixes for the html exporter. (Changes)

Update2: 0.1.10c is up with fixed atan2()

Multicart Exporter

The EXPORT command can now be used to create a single .js (and .html) file that contains more than one cart. All of the carts can read, write, and run each other as if they were local files loaded from PICO-8. To do this, add the names of up to 15 extra cartridges you'd like to include in the export: (.p8 format only in 0.1.10)

> LOAD MENU.P8
> EXPORT MEGACART.HTML JELPI.P8 DRIPPY.P8 CAST.P8

Inside the program, you can then use RELOAD() to grab data from other carts:

-- GRAB JELPI'S SPRITESHEET
RELOAD(0,0,0x2000,"JELPI.P8")

[ Continue Reading.. ]

32
41 comments



PICO-8 0.1.9b builds are now live on Lexaloffle and Humble.

This is a bug-fixing update, mostly for crashes related to switching between widowed mode, full-screen and minimized windows. I've also included the dynamically linked pico8_dyn versions in the linux archives, that were missing from 0.1.9.

The Windows installer & .zip file include a more recent sdl2.dll, although there weren't any known issues relating to that.

I've switched back to shift-a..z for glyph entry in the code editor, as alt-a..z is sometimes reserved by the host operating system. If you find yourself accidentally entering the extended characters by accident, you can turn this off in config.txt (near the bottom). To enter glyphs without shift-a..z, press ctrl-k to toggle glyph mode.

Changelog:

	v0.1.9b

		Added: Alternative function key mapping: ctrl-6..9 for F6..F9
		Added: Alternative glyph entry method: (ctrl-k) to toggle glyph mode
		Changed: Enter glyphs with shift a..z, but can be disabled in config.txt 
		Changed: Increased emscripten ram to 128MB (some carts at risk of running out)
		Fixed: Crash when window size is tiny or minified
		Fixed: Crash on toggling fullscreen mode
		Fixed: printh can write files outside filetree (security issue)
		Fixed: show_fps (can also now be toggled with ctrl-1)
		Fixed: Shorthand if/then syntax error when using the form: (functionname)(param)
		Fixed: log.txt not saved in path specified by -home switch
		Fixed: Default application data folder created even when -home specified
		Fixed: Missing dynamic builds (pico8_dyn) from linux archives
		Fixed: Removed unneeded RPATH from linux binaries
		Fixed: export foo%d.wav fails to write multiple files 
6
36 comments



Hey All -- PICO-8 0.1.9 builds are now live on Lexaloffle and Humble!

Posting Carts via Clipboard

The handiest new feature is being able to post cartridges to the bbs via the clipboard, without ever saving it as a png. Use "SAVE @CLIP" to copy to the clipboard as text, and then paste it into a post (hit Preview to make sure it worked and to get rid of the wall of text). You can also copy carts from the BBS (look for 'Copy' under each cart) and paste it back into PICO-8 with "LOAD @CLIP")

Posting GFX via Clipboard

You can also do the same thing with sprites. Using CTRL-C in the sprite editor also stores a copy of the sprites as text in the clipboard, and can be pasted back and forth to BBS posts. Here's an example: (click the 40x8 and then CTRL-C the text to copy&paste it back into a cart)

[ Continue Reading.. ]

23
34 comments



Cart #26194 | 2016-07-31 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
9

Here's a 7500 word dictionary cart for making word games and whatnot. It contains the most common 3-6 letter words according to wiktionary.com, including proper names. The loader is 264 tokens, and the data is 11317, stored over the full map (including shared gfx), plus the last 44 SFX. So there are just 128 sprites and 20 SFX spare. The 5 most common and 10 least common words on the list are:

THE
AND
THAT
WAS
HIS

RADIUM
BAWL
LINTEL
WAFER
WELTER
AUNTY
OPTICS
SIKH
LIL
BARB

Technical details..

The data is generated using a convoluted toolchain process, that I'll post later on if I find time to organize it into something useful.

The compression works by enumerating every possible word in order of word size first, and then alphabetical order. So, A is 0, B is 1, AA is 26, and so on. This means that to store the whole dictionary, only the distances between each word's index is needed. There are many clusters of close words (e.g the distance between CAN and CAP is only 2), so the distances are sorted into range categories depending on how many bits are needed to store each range. Repeated categories are common and so can be encoded with a single bit -- otherwise a 3-bit value is used to store the category for each distance. The encoding utility greedy-searches sets of 5 category bit-lengths and a roman cypher to try to optimize the encoded size, which saved around 1k compared with hand-optimizing the parameter set.

9
4 comments



UPDATE!

PX8 has been replaced by PX9: https://www.lexaloffle.com/bbs/?tid=34058

But I'll leave this here for reference, and for existing projects using PX8.


Cart #25919 | 2016-07-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
46

This is a library mostly for compressing graphics and maps, but can also be adapted to compress sfx. It is designed for data-heavy carts and requires around 450 tokens for decompression, although this can be reduced if needed by removing remap(), hard-coding parameters, and/or removing predicted spans at the cost of compression performance. If someone wants a smaller/weaker version, let me know!

To use it, compress a 2D rectangle to an address in memory, and supply a function for fetching the source values (normally SGET or MGET). For map data, you probably want to set p.cbits to something like 4 first.

[ Continue Reading.. ]

46
24 comments



Hey All -- PICO-8 0.1.8 builds are now live on Lexaloffle and Humble! Note that there was no 0.1.7 release for Desktop; there were in-development versions of 0.1.7 released early for web and Pocket C.H.I.P. to resolve pressing issues, so I'm calling this 0.1.8 to keep version numbers in sync across platforms. New stuff:

60 FPS support

This breaks the 'every cart runs the same on all PICO-8s' rule of PICO-8's design philosophy a little bit, but I think it's worth it! On all of the desktop host platforms, it is now possible to make cartridges that display and update at 60 frames per second instead of 30. You don't get any more CPU though, so that means half the usual CPU allowance per frame. From the manual:

:: Running PICO-8 at 60fps

If _update60() is defined instead of _update(), PICO-8 will run in 60fps mode:
	- both _update60() and _draw() are called at 60fps
	- half the PICO-8 CPU is available per frame before dropping down to 30fps

** please note that not all PICO-8s support 60fps. On machines that do not support it, _update60() will instead be called twice per frame and _draw() at 30fps. You can check the behaviour of your program running at 30fps by adding the following snippet to the bottom of your code:

	u60=_update60 _update60=nil function _update() u60() u60() end

[ Continue Reading.. ]

15
21 comments



The theme for the second PICO-8 Jam was Chain Reaction, and there were 35 entries. Thanks to everyone who contributed and made this jam a another splendid event. I hope you'll join me in congratulating the winning entry, which received a whopping 7.3 PICO-8 star average.. theatrically opens invisible envelope

NuSan! With Combo Pool.

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

As a token of gratitude for laying down this most excellent cartridge, NuSan will be receiving a commemorative cross-stitch based on the cart.

Also highly rated by participants was another disarming production by JTE: Nora's Mouse Chase, and the beautifully chaotic SPACETANK 9000 by arnodick.

[ Continue Reading.. ]

10
18 comments



If you'd like to take part in P8JAM2, please select one or more themes by clicking on the PICO-8 star next to it (you need to be logged in). You can change it anytime before the 24h voting phase ends -- at 00:00 PST on Saturday the 21st. Check out the jam thread for more details.

Edit: times's up! The winning theme is Chain Reaction. You have 9 days! Good luck!

11
40 comments



Hey All

I'm in the process of simplifying the website a little. In particular, I wanted to improve the experience of playing cartridges in threads by removing clutter. They now look more like a page dedicated to the cart:

  • The player starts open
  • There's a big obvious play button and large thumbnail
  • There's no banner at the top of each page

Cart #20430 | 2016-05-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
34

I removed the PLAY buttons from the thread previews, and autoplay, as I think they're no longer needed -- the whole playable region of a cart is now visible without scrolling after opening the cart's thread, and it's more obvious to new visitors what to do next.

There are still a few small things to finish, but let me know what you think of the new layout, and if there's anything that bugs you.

3
15 comments



Time for another jam! EDIT: The theme is Chain Reaction.

EDIT2:
and... that's time! Thanks everyone who contributed a cartridge! If you submitted something with the p8jam2 tag, you can now rate other p8jam2-tagged carts at the top of the cart's thread.

P8JAM2 THREADS

If you'd like to continue working on your cartridges, feel free -- but please leave the compo version at the top of the p8jam2-tagged threads until voting finishes in one week (June 5, 24:00 PST). Good luck!

Cart #20430 | 2016-05-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
34

Same deal as last time, except with some limited theme voting:

Duration: The Jam will take place from 00:00 PST on Saturday the 21st of May 2016 and will finish at 24:00 PST on Sunday the 29th. So, it spans 2 weekends and 5 weekdays. You can spend as much or little time on your carts as you like. Tiny silly cartridges are more than welcome.

[ Continue Reading.. ]

34
24 comments



If you're looking for a complete portable PICO-8 solution, good news! PICO-8 is going to ship pre-installed on Next Thing Co.'s upcoming PocketC.H.I.P. -- a complete portable mini-computer with built-in storage, wifi, keyboard, battery, touchscreen and everything else PICO-8 needs! The last few months, I've been working closely with the team at Next Thing Co. to create "PICO-8 C" -- a fully functioning and compatible edition designed to integrate nicely with NTC's hardware and software. It will be available to Kickstarter backers, or you can also pre-order one for just $49 bucks.

You can read more about the PocketC.H.I.P. over at getchip.com

[ Continue Reading.. ]

7
42 comments



Here's 0.1.6! You can download it from your updates page while you're logged in, or from your Humble Store Library. Just a reminder, that if you're a Voxatron alpha customer, you also own PICO-8! (it should show up automatically in both places).

By far the biggest change is the addition of SPLORE, a complete bbs and local cartridge explorer. You can run it by typing SPLORE, or start PICO-8 with "pico-8 -splore". If you plug a joystick in and auto-boot into splore, it's possible to navigate everything using only the 6 buttons + menu button.

This version also has a lot of new data storage functionality. Cartridges can cstore() to themselves in order to save extra data, and this is now officially supported on the web, so don't feel like it's a weird hack that's going to break! (actually it might break, but it's supported, so I'll fix it :p). Here's a demo:

Cart #19844 | 2016-04-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

[ Continue Reading.. ]

18
42 comments



Cart #19844 | 2016-04-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

This is a demo of the new cartridge storing in 0.1.6. (you'll need to update to 0.1.6 if you load this in PICO-8)

Press O (mapped to Z or C) to save the screen, and X to restore it. The cursor position is not saved.

To save, the screen is copied to the sprite sheet and then stored for clarity -- but it could have just been a straight cstore(0x0, 0x6000, 0x2000), and same again in reverse when restoring.

 if (btn(4)) then
  memcpy(0x0,0x6000,0x2000)
  cstore()
 end

 if (btn(5)) then
  len = reload()
  memcpy(0x6000,0x0,0x2000)
 end

This should also work in your browser, even if you close it and run the cartridge again. Please let me know if it doesn't!

Note that in 0.1.6 you can also cstore to separate cartridge files, meaning we can have quite large save games, and also saved data shared between carts on the bbs.

2
1 comment



A build of PICO-8 0.1.5 is now available for Raspberry Pi! Check your updates page or look in your Humble library under the Linux downloads section.

It works in fullscreen under either X Windows or directly from the terminal (using directfb). For speed, the default resolution is 280,280; you can set this with the -width and -height switches:

pico8 -width 720 -height 480

Known issues:

  • After quitting, keypresses during the session are sometimes dumped to terminal (annoying if you quit by typing shutdown instead of CTRL-Q!)
  • Freeze on exit (observed on a zero)
  • Some math-heavy cartridges (e.g. /demos/cast.p8) don't run at full speed on first generation models.

There are two builds included in the archive. pico8 is compiled statically (so no need to install SDL2), and pico8_dyn dynamically loads libraries, in case you'd like to supply your own SDL2.

Have fun, and please post pictures if you get pico-8 running on any cute displays!

28
92 comments



This weekend (20th, 21st) I'll be at Tokyo Demo Fest 2016, giving a short PICO-8 seminar at 3pm on Sunday, and also making a wee demo for the Wild compo (also in PICO-8, naturally). If you're in Tokyo, come along! The venue is larger than last year -- 3331 Arts Chiyoda, which is around 8 minutes walk from Akihabara station. You can find the registration page and more information here.

Here's a 4k demo from last year (it won the combined pc section):

3
6 comments



Hey All

Here's a quick update with music copying and keyboard configuration for controller buttons.

To configure buttons, use KEYCONFIG from the commandline.

To copy a song from one cartridge to another:

  1. In the song editor, click on the start pattern and then shift-click on the end pattern that you want to transport. They should light up green.
  2. Control-C to copy the pattern data, along with the sfx they point to.
  3. Load the cart you want to paste into, open the song view and click on the pattern index you want to paste to.
  4. CTRL-V to paste. When pasting a song, any SFX that are needed are written to unused slots and then the pattern indexes are adjusted accordingly.

Changelog:

v0.1.5
		Added: Keyboard configuration for player buttons (KEYCONFIG) 
		Added: Music tracker select / copy / paste
		Added: Single-level undo in audio tools
		Added: Live preview of frequencies in sound editor
		Fixed: Command history extends past last reboot
		Fixed: Sfx exporter broken
		Fixed: Slashes at end of path resolve to double slashes
		Fixed: Load cart from commandline under Windows

[ Continue Reading.. ]

11
15 comments




Every day, Professor Miggles goes to work. And every day he snoozes in bed until the last possible moment. To keep the points you get for snoozing, make sure to head out in time without forgetting to put your trousers on.

v1.1: Fixed high score bug, and added persistent high score (when played from pico-8)

60
13 comments



Hey All, I hope you had a great new year!

PICO-8 0.1.4 builds are live on the updates page and on Humble. The main features of this update are:

Friendlier Token Counting

Pairs of brackets and block deliminations now count as one token each, and local declarations do not count at all. You can now fit in around 30% more code because of this, and there is less need for odd space-saving techniques (e.g. using blah"" instead of blah()), or getting rid of local variables. It does mean you're more likely to hit the compressed code limit (use INFO to check), but I don't think this will be a problem. The raw character limit has also been increased from 32k to 64k.

Importing / Exporting Data

import() and export() can now load and save the sprite sheet: export("something.png") and sfx: export("something.wav"). These aren't very flexible yet, but in future they'll be able to do things like grabbing particular sets of sprites, or only importing into empty slots.

[ Continue Reading.. ]

14
33 comments



Voxatron 0.3.4 builds are live on the updates page and on Humble.

This is a quick bug-fixing update, mostly responding to issues in the 0.3.3 thread.

Changes:


v0.3.4

Changed: Super-State conditions (S-STATE) apply to all actors including ones spawned by emitters
Changed: When pasting alias, activation controller parameters are copied from the original
Improved: More robust anti-stuck-in-a-wall method
Improved: Default object properties
Improved: Config file validation
Fixed: Aliased animation inside root of pickup renders pickup uncollectable
Fixed: Base weapon doesn't change with modifier
Fixed: Legacy sword has 0 attack damage
Fixed: Room editor: spacing between objects should be taken from object definition
Fixed: Zoot's weapon switching in Chaos Arena

1
0 comments





Top    Load More Posts ->