Log In  

I like pixeled graphics and chiptune sound game.
i'm making game like metroidvania.

pelogen (3D modeling tool)
by shiftalow

Hello, everyone.

A few days ago, a game I created called KONSAIRI was released on Steam!

There are still very few examples of PICO-8 games on the Steam platform as PICO-8 games.

I think that's because, as content, PICO8 titles are seen as lacking when compared to other game engines and those created in a free development environment with no restrictions.

But I challenge you to dream of being in the same store as a masterpiece game, despite its limitations.

I also wish to see more interest in PICO-8 in my part of Japan.


P#83569 2020-11-01 14:36


I would like the exported file to include the current config.txt (global_config.txt) as local_config.txt in the exported file.

This will allow us to play from the creator's ideal config in another user's environment.

"global_config.txt" refers to the config.txt that I've been using.
If both global_config.txt and local_config.txt exist, local_config.txt is assumed to take precedence.

Sequence of events

I recently released the PICO-8 app in executable format.
However, the user's environment that downloaded it had different operations and a lower frame rate for inactive windows.
The released manual had to be rewritten and the creator was unable to provide the ideal play environment.

A question thread containing this

P#83100 2020-10-19 03:47

Is there a recommended coding method that would eliminate the drop frames that occur when the pico8 window is turned to the back?
Or is there a memory address I can set?

I want to keep the number of times to execute _update60() and draw() the same, even at 30fps.

P#83056 2020-10-18 03:05

P#82463 2020-09-30 12:29

Before I knew it, I had made a lot of them...

P#82254 2020-09-25 08:54 ( Edited 2020-09-25 08:55)

I'm developing KONSAIRI, a game I've been working on for a while now that I'm finalizing and checking throughout the game.

As I mentioned before, the goal of the game is to move back and forth between 16 different areas to reach the final destination.

However, it seemed to feel like the same old thing before you even reach halfway through the game.

That's why i added Dungeon mode, which changes the look and feel of the adventure dramatically.

Not only do you take damage when you touch an enemy, but there are hidden passages and hints scattered throughout the game that will help you get to the true ending.

When you stand in front of an enemy, you will see a timing gauge.
It's not for attacking, but for getting through to the enemy's rear.
A well-timed "step move" will allow you to move forward with no damage.
If time passes, you will be damaged.
If you move away from the spot, you can avoid the danger.

You can bring in items, throw them and use skills.
You can open doors, read hints, light up and explore, and more...!



P#81477 2020-09-03 16:01 ( Edited 2020-09-03 16:06)

I think being able to scroll horizontally with "Shift + mouse wheel" would make it easier to check for longer lines.

I can also use line breaks to keep up appearances, but I don't want to add too many characters.

P#80878 2020-08-17 13:30

Current Development

I'm building a relationship between NPCs and area map connections.
These are mainly for the latter 8 areas.
(The "keys" that NPCs have might be easier to understand.)

This game has a combined total of 16 areas.
There are also useful items that will help you move through such a large world.
These items can be found at the end of the first half of the game.

Then, the image below shows the map of the first half of the game.

Reduced map for 8 areas

Most of the maps are over 128*128 cell size.
The aspect ratio varies from area to area and the structure is challenging to explore.
Once you get your "KUWAI", use it! You can look around the entire area.

Actual map display

An animated tile is provided in each area.
These tiles bring about the effect of the wind.
You can use "PERSNIP" to change the wind (flow).

Awaking bells

The status limit is relaxed when you earn a BELL.
When you earn bells, the status limit is relaxed.
Bells can be earned by eating with NPCs when your friendship is somewhat higher.

The higher your status, the less items you'll have to wear out or take time to move around.

The color of the BELL is the color of the POT

Acquiring a bell of the same color (material) will have no effect.
You may be able to get bells of a different color from a different NPC.
The color of the pot and the color of the bell are the same; check it when you help the NPC.

Updated KONSAIRI trial version!

The performance of the action part has been improved!
Download a playable file here.

Have fun in a small and wide world! ;)

P#80624 2020-08-13 02:27 ( Edited 2020-08-13 09:48)

Does the random value generation by srand() always produce the same pattern output as long as the same seed value is input?

Does the output pattern change due to a change in the environment?
For example, the upgrades, the amount of code, the timing of the exports, the machine or OS you're running...

So far I haven't been able to verify much and I haven't encountered the fact that the output results have changed, but I am concerned.

Thanks for your help.

P#79667 2020-07-20 12:55 ( Edited 2020-07-20 12:56)

I'm working on a big project for PICO8.

Around the end of 2018, I learned about the scalability of multi-carting and continued to research and create it to this day.

We were able to give each of the four carts a role, rather than just being a data bank .

Cart 1: Title/Ending/3D dungeon scene
Cart 2: Platformer Scene
Cart 3: Cooking Scene
Cart 4: World Map Scene/Important Item Riddle Solving Operation

Because of these many factors, an hour or more of play is a must.
Data saves are automatic.
(Position when resume, growth and LIFE, possessions, time, status of NPCs helped, farmland, important items, veggies, history of veggies removed, history of enemies removed, and other things for cart-to-cart interaction).

Most of the game system is complete. I'm currently assembling the map for the later areas.

If anyone is planning an original, reasonably large game, PICO8 will be used as a prototype. It looks like they will progress the production and do the actual product in another game engine. I've seen some of those opinions. (Not my project.)

So sometimes what I do seems like a waste of time or laziness in choosing a development environment.
I don't see a lot of things planned in PICO8 from start to finish. It's not much.
Is it because of the scarcity that I am still developing? I don't think that's the only reason.

I'm not great at asking questions and such. Still, I've been able to implement a lot of features in the game because people before me have been posting and discussing their work repeatedly. Thanks for leaving the information, very grateful to you.

(I think the English translation is unnatural because it is a long sentence.)


P#78871 2020-07-04 07:18 ( Edited 2020-09-27 13:43)

Cart #pelogen-4 | 2020-05-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

What the tool can do

  • 3D modeling in 15x15x15 size.
  • Save and load into a sprite sheet.
  • Export the loading code from the sprite sheet.
  • Export the drawing code of the 3D model.

Control are followings(WIP)

updated (v0.2.2)

  • Added: Rotate vertices position with 90 degree angle(x/y/z + MouseDouble-L)
  • Added: Swap two vertices position before the selected vertex(Shift-S)
  • Added: Display mode switchable to "Face / Line / point"(Tab)
  • Added: Switchable Shading palette(MouseDouble-M)
  • Fixed: Improvement Flat shading, Culling
  • Changed: minimum position changed "-7" from -8(model size is 15x15x15)
  • Changed: View Rotation is not infinity.
  • Changed: Light source display method
  • Changed: Trifill() source code from p01

Old ver


Cart #pelogen-2 | 2020-04-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

updated (v0.2.1)

  • fixed: Object was not displayed in PLAY mode
  • fixed: Select of vertex was over the number of indexes(there was occurring error)

"p01_triangle_163" source code by


Cart #pelogen-1 | 2020-04-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

updated (v0.2.0)

  • Added: bottom plate
  • Added: Jumps the "Edit pointer" to the Vertex on the Mouse pointer(Mouse-L)
  • Enabled: Z sort
  • fixed: Weird rotation of space + Mouse-R


Cart #pelogen-0 | 2020-04-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#74562 2020-04-08 13:33 ( Edited 2020-06-04 08:40)

I am working on a small 3D modeling tool separate from the main game project.

The created 3D model is written to a sprite, and it is ready to be read.
However, operations and views are very confusing.

No such tool exists on the PICO-8 platform. (Or not seen)
I guess it's probably because there's an alternative and it's easier to produce.

Would you like to take advantage of this tool, even if it is paid?

P#74479 2020-04-05 02:01 ( Edited 2020-04-05 03:27)

Cart #sfxtelm-1 | 2019-12-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

PICO-8 Telmin!


  • mouse button: PLAY SFX
  • Z / X : Change waveform(0~7) and custom instruments(8~15)
  • mouse wheel : Change SFX Duration

old version

Cart #sfxtelm-0 | 2019-12-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


  • mouse button: PLAY SFX
  • LEFT/RIGHT : Change waveform(0~7) and custom instruments(8~15)

P#71497 2019-12-29 16:07 ( Edited 2019-12-30 08:23)

Cart #stringhashtable-1 | 2020-08-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Feature Overview

This script parse JSON like(incompatible JSON) String data, and convert to hash table.

Using space as delimiter.

Parsing recursive.

"k{v1 v2...}" is table. serve just Immediately before hashkey.

"k=v;" is key and value.

The Parser Normalize the individual values with order priority list in follow.

UPDATE history

v0.2 (2020 08 26)

  • Miniaturization of the cord.
  • No replace "\n" in the recursive process.

may want to Use VDMP if check the converted table.

old ver

Cart #stringhashtable-0 | 2019-12-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#71300 2019-12-22 06:44 ( Edited 2020-08-25 15:37)

Cart #piduzohazo-0 | 2019-04-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Happy Update PICO-8!

U or D: Change line length
L or R: Change line width

X : Sub line
Z : Add line
X + Z : Reset the center sprite

P#63532 2019-04-15 14:37

Cart #salahachider-2 | 2020-06-27 | Code ▽ | Embed ▽ | No License

The STG like "LIFE FORCE".
Japanese title is "沙羅曼蛇".

I refferred to Family computer ver.

Main game is WIP.

  • ver 0.03: Stabilize sfx.(using music())
  • ver 0.02: Can shot the bullet. Power up, The players remaining number UI.
  • ver 0.01: Release.
P#61434 2019-02-01 15:17 ( Edited 2020-06-27 12:55)

Cart #vdmplua-0 | 2019-01-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Print the inside Table Value.


Symbol summary

#  Number
$  String
%  Boolean
*  Function(output only the "[Function]")
!  nil(Is not printed because Skip nil in table pairs())
{} Table

"VDMP" execute then there are followings.

Stop the routine.
Clear Screen.
Display the contents of the specified table.
The displayed order is not fixed.
The overflowed text is not displayed.

P#60679 2019-01-08 14:10 ( Edited 2019-01-08 14:40)

Cart #fillpatdraw_02-7 | 2020-07-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

FillPatDraw FullColor version

This cart is tool that export code for drawing with FILLP() and RECTFILL().
The Exported data can draw that using without Sprite sheet.

You can also apply a check mask to an image by changing the value of _filppmask to a non-zero value.

Rectfill pattern animation

FILLP DRAW (2color version)


Sprite sheet view

  • Mouse Left Drag and Click
    1 Select the rectangle to be the source of the delimited block.
    2 Select the length of block from start to end.
    3 Click Export Button for Confirm and Enter the export (p8l)file name.
    In some cases there is a waiting time of 30 seconds or more.
  • Right Click
    Prev select mode.

  • Tab key
    Open the Menu Window.


  • PLAY Button
    Start Pattern Draw Preview

  • SAVE Button
    SAVE PNG file and Attach Cart data

  • LOAD Button
    LOAD PNG file and Attach Cart data

  • CLEAR!! Button
    CLEAR Sprite sheet(not Attach Cart data)

Pattern Draw Preview

  • Space key
    Stop and Start the Animation.
  • Left Click
    Step to Next BlockID.
  • Right Click
    Prev to Back BlockID.
  • Tab key
    Return The Menu Window.

How to use the exported code

Paste the code from the p8l file written by this tool into your code.

To execute it add the following code.

  • BlockID : Number in Selected Sprite sheet view mode.(start 1)
  • x,y : draw position.
  • Return value: If ID not found then TRUE else FALSE.

How to add data

That can add to the export data in the following way.

(add datablock2)
(add datablock3)

Draw Sequence


  • rev5: Improved drawing performance(25% faster). Reducing the tokens used. Abolition of autoload. Empty writing is suspended. Enabled the paste command on file name input.
  • rev4: Can specify the drawing position by 1px instead of 4px.(Using camera())
    Can superimpose masks while drawing.
    Supports export of multiple png files.
  • rev3: Tuning Encode and Draw performance.
  • rev2: Remove debug code
  • rev1: Fixed can't return on Tabkey
P#60621 2019-01-06 15:29 ( Edited 2020-07-21 14:38)

Cart #fillpatanm1-0 | 2019-01-01 | Code ▽ | Embed ▽ | No License

the full color "fillp + rectfill" drawing.

about fill pattern drawing old format follow.
that's can only 2 color in cell of 4x4 size.

P#60477 2019-01-01 07:15 ( Edited 2019-01-01 10:12)

I learned make transparent with fillp() drawing.
and want remake this.

Cart #fillpdraw-0 | 2018-12-24 | Code ▽ | Embed ▽ | No License

FILLP draw

This cart is tool that export code for drawing with FILLP() and RECTFILL().
The Exported data can Execute that using without Sprite sheet.


  • Canvas area
    -- Left Click : draw pixel
    -- Right Click: color pick
    -- Space key : panning (space hold and mouse drag)
    -- Z : undo
    -- X : redo

  • Palette area
    -- Left Click : color pick
    -- Right Click: color pick

  • Sprite sheet area
    -- Left Click : move the view along the grid
    -- E,S,D,F : Slide Sprite sheet data

  • SAVE Button
    -- SAVE PNG file and Attach Cart data

  • LOAD Button
    -- LOAD PNG file and Attach Cart data

  • EXPORT Button
    -- Export P8L text file that the Drawing code

  • CLEAR!! Button
    -- CLEAR Sprite sheet(not Attach Cart data)

How to use the exported code

That code include followings.

  • ColorData-FillPatternID data
  • FillPattern Library
  • draw function

and add your code.

To execute it add the following code.

  • BlockID: 32x32pixel delimited ID in sprite sheet
  • x,y : draw position.(It requires a multiple of 4. and 0)

How to add data

That can add to the export data in the following way.

(add datablock2)
(add datablock3)
FillpatData For Datablock1
(addFillpatData For Datablock2)
(addFillpatData For Datablock3)
P#60312 2018-12-24 14:41 ( Edited 2018-12-25 14:47)

View Older Posts
Follow Lexaloffle:        
Generated 2021-01-20 04:45 | 0.178s | 4194k | Q:228