Log In  
Follow
shiftalow

I like pixeled graphics and chiptune sound game.

I just released a pico-8 game on Steam!

KONSAIRI

And More Tools!

[Minimized 3D modeling tool] [ NEW ]
PELOGEN2

[PCM-5512.5Hz 6ch sound Track Sequencer] [ NEW ]
MinimemTracker

[Music scales and Play the Piano]
μ-Scale Lab

[Animation tool]
SPRANIM-KIT

MinimemTracker【切り抜きトラックシーケンサ】
by shiftalow
3D Modeling Tool PELOGEN2 is released!
by shiftalow
Flower of Effect Visualizer 🌸
by shiftalow
KNUTIL Scene Manager & Frequently Used Functions Library
by shiftalow
KONSAIRI
by shiftalow

Cart #screenshotsafe-0 | 2025-05-26 | Code ▽ | Embed ▽ | No License
2

When you want to export a sprite sheet in a binary cart, the export command doesn't work.
So you can get around that limitation by taking a screenshot at 1x scale.
extcmd seems to work!

You can use this technique if you want to use a drawing program or sprite generation tool in a binary cart.

memcpy(0x6000,0,0x2000) --sprite-sheet to screen
extcmd('set_filename','spritesheet')
extcmd('screen',1) --[x1]scale screenshot
2
0 comments



You can now apply textures on the UV editing screen!

The sample code also includes a way to draw that data!

-- PELOGEN library codes --
-- .
-- .
-- .
-- PELOGEN library codes --

-- load model(& color & uv)
local o=objload({16,17,18,19,20},{ 23 },{32,33,34,35,36})
_set_fps(60)
while 1 do
cls()

--set scales
o.scale={2,2,2}

--reset rot & init rotate:z
o.rot[3]=t()*0.4
objrot(o)

--(*1)set cordinates
o.pos={64,64,64}

--(*2)rotate:x 
objrot(o,0.0625,0,0)

--(*3)add to raster-buffer on 'tx' mode
addraster(o,'tx')

--(*4)draw all raster-buffer
drawraster()

--short-code (*1)-(*4)
--default-render-mode: _p_render='tx'
--objdraw(o,{64,64,64},{0.0625,0,0})

flip()
end

The trial version includes a 3D model saving function!

[ Continue Reading.. ]

5
2 comments



Cart #mapdrawtarget-0 | 2025-03-20 | Code ▽ | Embed ▽ | No License

This cart has already had its ID written to the bottom of the MAP (x:0-127, y:32-64).
When you run it, the following processes are performed.

  • Change the drawing target to the sprite sheet
  • Call rectfill() with color 0 on the bottom of the sprite sheet (shared with the bottom of the MAP)
  • Change the drawing target to the screen
  • Draw the bottom of the MAP

The screen should turn completely black as expected, but the MAP continues to draw what it was before it was updated.

Finally, it calls cstore() to exit, and when you run it again, it will update to a completely black screen.

0 comments



Cart #bc_cloud_parallax-0 | 2025-03-04 | Code ▽ | Embed ▽ | No License
4

tline-GFX for practice and understanding.

https://www.lexaloffle.com/bbs/?tid=147597
I will share the code used in this post to implement it step by step.
Coding the ideal effect all at once can be complicated and difficult to implement.
Isolating all the elements and solving them one by one will bring you closer to your goal.

Step1

Draw one line from top to bottom with tline().

bottom=127

for i=0,bottom do
	tline(0,i,127,i,0,i/8)
end

Step2

Shift the reference y coordinate so that it scrolls from bottom to top.

[ Continue Reading.. ]

4
0 comments



[sfx]

[24x24]

This is one of the pieces of music played in my own game. ☺

KONSAIRI BGM Posts

[ Continue Reading.. ]

0 comments



[sfx]

[24x24]

This is one of the pieces of music played in my own game. ☺

KONSAIRI BGM Posts

[ Continue Reading.. ]

5
0 comments



[sfx]

[24x24]

This is one of the pieces of music played in my own game. ☺

KONSAIRI BGM Posts

[ Continue Reading.. ]

1
0 comments



Cart #exinput_bc-3 | 2024-10-23 | Code ▽ | Embed ▽ | No License
1

Feature Overview

Buttons input

getbtns() updates the extended button(key) input state.

  • This must be done in the _update() function.
  • Required poke(0x5f2d,1)
  • button values:
    • btrg: returns true only for frames where a key was entered.
    • butrg: returns true only for frames where a key was released.
    • btns: returns true whenever the key is pressed.
    • btnc: returns the count while the key is held.[number]
    • _key: typed characters.[string]
    • _ent: enter key typed.
    • _del: delete/backspace key typed.
  • modifier keys values:
    • _ctr: ctrl/command key pressed.
    • _alt: alt/opt key pressed.
    • _sft: shift(left) key pressed.

[ Continue Reading.. ]

1
0 comments



Cart #iscdataempty_bc-0 | 2024-10-12 | Code ▽ | Embed ▽ | No License
1

Use this to check that the saved state of the game, such as mid-game progress, is the initial state (all 0).

print(iscdataempty() and 'cartdata empty' or 'cartdata found')
  • Returns true if it is in the initial state.
  • Returns false if there is any data contained in it.
  • This function consumes 14 Token.

With this test cart, we will verify that entering CARTDATA with the mouse will cause it to return to its initial state.
You can reset CARTDATA in the pause menu.

1
0 comments



Cart #jprint_bc-1 | 2024-10-08 | Code ▽ | Embed ▽ | No License
2

Japanese is output using a custom font.
Also, voiced consonants and semi-voiced consonants(濁点・半濁点) are adjusted to be placed at the top of the characters.

jprint('かわいい いちこ゛た゛いふく さん♥',14) -- Usage is the same as for print().

ぁぃぅぇぉ,ァィゥェォ does not exist as a character in standard Pico-8.
Therefore, we have rewritten the default emoji as shown in the table below.

'ぁ' > '…'
,'ぃ' > '➡️'
,'ぅ' > '★'
,'ぇ' > '⧗'
,'ぉ' > '⬆️',

'ァ' > 'ˇ'
,'ィ' > '∧'
,'ゥ' > '❎'

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=155450#p)
2
2 comments



Cart #filename_typewirter_bc-0 | 2024-09-28 | Code ▽ | Embed ▽ | No License
1

This is the file name input code for writing a .p8l file with printh.

The following characters are excluded from input to make it safe to enter file names:

'\\/:*?"<>|!\'#$%&()+-*^=~`@{}[]<>,.;'

If these characters are included in the file name, an error will occur and I have experienced my edited data being ruined. This is to prevent this from happening.

By the way, there is no reference document for the excluded characters, and it seems that there are more characters that pico8 cannot handle in file names than the host OS.

I have not checked the excluded characters in detail and have set them based on a guess. Has anyone checked all the excluded characters?

1
0 comments



Latest version

Below is v0.3

Cart #minimemtracker_bc-2 | 2024-11-06 | Code ▽ | Embed ▽ | No License
12

Overview

This is a sequencer that plays sounds from a waveform memory mechanism through PCM.
It achieves several things that could not be done with the Pico-8 standard tracker.

Operation

Mainly mouse operations.
When you press a key on the keyboard, it makes a sound

Basic screen

  • Channel tab: Left click to select, mouse wheel to mute/unmute.
  • Channel panel: Mouse wheel to adjust sequence speed (0-63), left click to open view.
  • Space bar to play track.
  • Press and hold enter to open the menu.

[ Continue Reading.. ]

12
2 comments



Cart #bc_lpotanimation-0 | 2024-09-06 | Code ▽ | Embed ▽ | No License
1

z: Slow animation
x: Action animation

For simplicity of use, the sprite table is determined as a state flag.

1
0 comments



Cart #flowerofeffect-0 | 2024-08-10 | Code ▽ | Embed ▽ | No License
6

フラワーオブライフのような模様を描画してみたくなり、作ってみました。

クエリは"HTBL()"の解析をある程度理解する必要があります。まずサンプル(tab:6)を見てください。

演出はパートでテーブル区切られており、パートごとに描画グループを複数設定することができます。

クエリ作成(QUERY)

描画グループの指定

{id number radius color distance angle [option]}

  • id: 操作する描画オブジェクトのインデックス
  • number: 描画する数
  • radius: 描画する円の半径

[ Continue Reading.. ]

6
0 comments



Cart #parabolic_anim_bc-0 | 2024-08-06 | Code ▽ | Embed ▽ | No License
6

Displays an animation of a parabola.

After opening the menu, use the up and down keys to select the item you wish to control.

Z: open control menu / close control menu

  • START: Specifies the animation start position.
  • TARGET: Specifies the animation end position.
  • HEIGHT: Adjusts the height of the middle point.
  • DURATION: Specifies the animation length. (If TIME exceeds DURATION, the animation will start from the beginning.)
  • FRAMERATE: Switches the frame rate to 30 or 60.
6
0 comments



Cart #qsortz_bc-0 | 2024-07-24 | Code ▽ | Embed ▽ | No License

Feature Overview

QSORTZ() Quick sort by z.

  • sorts by reference to z from the argument table.
  • See the code in the cart for the single value type QSORT() where table t is sorted by v.
  • This function consumes 76 Token.
tb={{id='a', z=1}, {id='b', z=2}, {id='c', z=1.5}, {id='d', z=-0.5}}

?'before sort',6
for i,v in pairs(tb) do
	?v.id..':'..v.z
end

qsortz(tb,1,#tb)

?'\nafter sort'
for i,v in pairs(tb) do
	?v.id..':'..v.z
end
--[[
before sort
a:1
b:2
c:1.5
d:-0.5

after sort
d:-0.5
a:1
c:1.5
b:2
]]
0 comments



When turning knobs in the SFX or instruments editors, it can be difficult to adjust by dragging.

This happens when the window size is x2 or more and you use Alt + Tab to switch application windows.
As a temporary fix to this problem, you can restore adjustments by returning the window to normal size.

This has been the case since the version before v0.1.0h when the mouse lock function was added.

0 comments



Cart #sectfill_bc-2 | 2024-08-11 | Code ▽ | Embed ▽ | No License
7

Feature Overview

SECTFILL() Fill sector shape.

  • The start and end angles are specified from 0 to 1.
  • If the difference between the start angle and the end angle is 0.5 or more, it is a semicircle, and if the difference is 1 or more, it is a circle.
  • If the start position is higher than the end position, it is replaced.
  • This function consumes 428 Token. (segfill & trifill ver: 185 Token + trifill's Token)
-- Draw the Mouth characters

sectfill(96,64,20,11,-0.2,0.9)-- x, y, size(radius), color, start angle, distance
sectfill(54,64,8,12,-0.2,0.9)
sectfill(26,64,8,12,-0.2,0.9)

[ Continue Reading.. ]

7
3 comments



Cart #segfill_bc-6 | 2024-08-11 | Code ▽ | Embed ▽ | No License
5

Feature Overview

SEGFILL() Fill segment shape.

  • The start and end angles are specified from 0 to 1.
  • If the difference between the start angle and the end angle is 0.5 or more, it is a semicircle, and if the difference is 1 or more, it is a circle.
  • If the start position is higher than the end position, it is replaced.
  • This function consumes 314 Token.
-- Draw a half moon

segfill(32,24,16,10,0.625,0.5) -- x, y, size(radius), color, start angle, distance

It may be helpful to understand how it works by executing a COLOR COMMENT OUT line.

[ Continue Reading.. ]

5
4 comments



Cart #pelogen_catch-1 | 2024-11-03 | Embed ▽ | License: CC4-BY-NC-SA
13


You can grab it with a mouse click and drag it to throw it.

Shellsort seems to have a slightly better affinity with this 3D rendering engine.

Release note

  • v0.2 Added sorting functionality and the ability to toggle object states.
  • v0.1 Release

PELOGEN 2 is a 3d model engine running on pico8.
https://www.lexaloffle.com/bbs/?tid=140324

13
0 comments





Top    Load More Posts ->