PICO-8 Wiki
(A few tidbits & formatting)
(→‎Text Editor: nope, no it isn't)
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<sup>''!!! Work in progress, not ready for prime time, do not link from other pages yet !!!''</sup>
+
<sup>''!!! Work in progress !!!''</sup>
   
Not all PICO-8 hardware has a keyboard, but when it does, there are many keyboard shortcuts that one can use.
+
Not all PICO-8 hardware has a keyboard, but when it does, there are many keyboard shortcuts that one can use. Known shortcuts are listed here.
   
  +
----
Note that the list below primarily shows the shortcuts for a QWERTY keyboard layout on a Windows build of PICO-8. Regional and platform variations do exist, however. Where known to be different, the Linux and MacOS alternatives are listed here.
 
   
 
:'''Important:''' the lists below all start with the shortcuts for a '''QWERTY''' keyboard layout on a '''Windows''' build of PICO-8. Key bindings for other keyboard layouts or platform builds are only listed if they are known to be ''different'' from the Windows Build.
'''Readers with knowledge of other platforms are encouraged to fill in the blanks if they know of keys that differ from the Windows layout. If you do, please follow the existing format, thanks!'''
 
  +
  +
:If your key isn't listed, or doesn't work right, try to use the Windows-style shortcut the way you would usually expect one to be done in your own OS. For instance, if you know Undo is Ctrl-Z on Windows, you'd want to try Cmd-Z on MacOS.
  +
  +
:Also, if you are on a different regional layout, such as AZERTY or QWERTZ, try using the key that would be in the same ''physical'' position as the QWERTY key. And remember, there is a [[Keyconfig|<code>keyconfig</code>]] command you can use to change in-game button assignments.
  +
  +
:'''Readers with knowledge of other platforms are encouraged to fill in the blanks if they know of keys that differ from the Windows layout.''' Don't worry too much about following the tricky formatting in these tables, unless you want to. Feel free to just enter whatever helpful notes you have, even if they aren't put into the tables. Someone else can do the formatting later if needed. Thanks!
  +
  +
----
   
 
<!-- handy chars: ⌘Cmd ⇧Shift ⌥Opt ⌃↩⌤⌫⌦⌧⇥⇤␣⎋⇪⏏⇞⇟↖↘←→↑↓ -->
 
<!-- handy chars: ⌘Cmd ⇧Shift ⌥Opt ⌃↩⌤⌫⌦⌧⇥⇤␣⎋⇪⏏⇞⇟↖↘←→↑↓ -->
Line 16: Line 24:
 
!scope="col" style="width: 22%;"|MacOS
 
!scope="col" style="width: 22%;"|MacOS
 
|-
 
|-
  +
|<u>Q</u>uit
|Quit
 
 
|<kbd>Alt</kbd>+<kbd>F4</kbd>
 
|<kbd>Alt</kbd>+<kbd>F4</kbd>
  +
|<kbd>Ctrl</kbd>+<kbd>Q</kbd>
|
 
 
|<kbd>⌘Cmd</kbd>+<kbd>Q</kbd>
 
|<kbd>⌘Cmd</kbd>+<kbd>Q</kbd>
 
|-
 
|-
  +
|<u>R</u>eload/<u>R</u>un/<u>R</u>estart
|Reload/Run/Restart
 
  +
|<kbd>Ctrl</kbd>+<kbd>R</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>R</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>R</kbd>
|
 
 
|
 
|
 
|-
 
|-
|Quick-save
+
|Quick-<u>S</u>ave
  +
|<kbd>Ctrl</kbd>+<kbd>S</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>S</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>S</kbd>
|
 
 
|
 
|
 
|-
 
|-
  +
|<u>M</u>ute/un<u>m</u>ute
|Mute/unmute
 
  +
|<kbd>Ctrl</kbd>+<kbd>M</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>M</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>M</kbd>
|
 
 
|
 
|
 
|-
 
|-
 
|Editor toggle
 
|Editor toggle
 
|<kbd>Esc</kbd>
 
|<kbd>Esc</kbd>
  +
|<kbd>Esc</kbd>
|
 
 
|
 
|
 
|-
 
|-
 
|Full screen toggle
 
|Full screen toggle
 
|<kbd>Alt</kbd>+<kbd>Enter</kbd>
 
|<kbd>Alt</kbd>+<kbd>Enter</kbd>
  +
|<kbd>Alt</kbd>+<kbd>Enter</kbd>
|
 
 
|<kbd>⌘Cmd</kbd>+<kbd>F</kbd>
 
|<kbd>⌘Cmd</kbd>+<kbd>F</kbd>
 
|-
 
|-
Line 74: Line 82:
 
|<kbd>Ctrl</kbd>+<kbd>1</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>1</kbd>
 
|
 
|
 
|
  +
|-
  +
|Previous editor
  +
|<kbd>Alt</kbd>+<kbd>←</kbd>
  +
|<kbd>Alt</kbd>+<kbd>←</kbd>
 
|
  +
|-
  +
|Next editor
  +
|<kbd>Alt</kbd>+<kbd>→</kbd>
  +
|<kbd>Alt</kbd>+<kbd>→</kbd>
 
|
 
|
 
|}
 
|}
Line 80: Line 98:
   
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
|Pause menu
+
|<u>P</u>ause menu
 
|<kbd>P</kbd> / <kbd>Enter</kbd>
 
|<kbd>P</kbd> / <kbd>Enter</kbd>
 
|
 
|
Line 97: Line 115:
   
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
|Copy (entire line)
+
|<u>C</u>opy (entire line)
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
Line 117: Line 135:
 
|
 
|
 
|-
 
|-
|End-of-line
+
|<u>E</u>nd-of-line
 
|<kbd>End</kbd><br /><kbd>Ctrl</kbd>+<kbd>E</kbd>
 
|<kbd>End</kbd><br /><kbd>Ctrl</kbd>+<kbd>E</kbd>
 
|
 
|
Line 127: Line 145:
 
|
 
|
 
|-
 
|-
|Kill to end-of-line
+
|<u>K</u>ill to end-of-line
 
|<kbd>Ctrl</kbd>+<kbd>K</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>K</kbd>
 
|
 
|
Line 136: Line 154:
 
|
 
|
 
|
 
|
|}
+
|-
  +
|Clear screen
 
  +
|<kbd>Ctrl</kbd>+<kbd>L</kbd>
 
|
 
|
  +
|}
   
 
==Text Editor==
 
==Text Editor==
 
   
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
 
|Cut
 
|Cut
Line 153: Line 174:
 
|
 
|
 
|-
 
|-
  +
|<u>C</u>opy
|Copy
 
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
Line 163: Line 184:
 
|
 
|
 
|-
 
|-
|Select all
+
|Select <u>A</u>ll
 
|<kbd>Ctrl</kbd>+<kbd>A</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>A</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Glyph mode toggle
+
|<u>K</u>eyboard glyph mode toggle
 
|<kbd>Ctrl</kbd>+<kbd>K</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>K</kbd>
 
|
 
|
Line 179: Line 200:
 
|-
 
|-
 
|Start of line
 
|Start of line
|<kbd>Home</kbd>
+
|<kbd>Home</kbd><br /><kbd>Ctrl</kbd>+<kbd>W</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|End of line
+
|<u>E</u>nd of line
|<kbd>End</kbd>
+
|<kbd>End</kbd><br /><kbd>Ctrl</kbd>+<kbd>E</kbd>
 
|
 
|
 
|
 
|
Line 238: Line 259:
 
|
 
|
 
|-
 
|-
|Find text in current tab
+
|<u>F</u>ind text in current tab
 
|<kbd>Ctrl</kbd>+<kbd>F</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>F</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Find text aGain
+
|Find text a<u>G</u>ain
 
|<kbd>Ctrl</kbd>+<kbd>G</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>G</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
  +
|Repeat search across tabs (<u>H</u>yper search)
|Go to Line number
 
  +
|<kbd>Ctrl</kbd>+<kbd>H</kbd>
 
|
 
|
  +
|-
 
|Go to <u>L</u>ine number
 
|<kbd>Ctrl</kbd>+<kbd>I</kbd><br /><kbd>Ctrl</kbd>+<kbd>L</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>I</kbd><br /><kbd>Ctrl</kbd>+<kbd>L</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Duplicate current line
+
|<u>D</u>uplicate current line
 
|<kbd>Ctrl</kbd>+<kbd>D</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>D</kbd>
  +
|
  +
|
  +
|-
  +
|Toggle comment <u>B</u>lock
  +
|<kbd>Ctrl</kbd>+<kbd>B</kbd>
 
|
 
|
 
|
 
|
Line 273: Line 304:
 
All tools:
 
All tools:
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
 
|Pan tool
 
|Pan tool
|<kbd>Space</kbd>+<kbd>🖰&#8239;Click+Drag</kbd>
+
|<kbd>Space</kbd>+<kbd>🖰&#8239;LClick+Drag</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
  +
|<u>C</u>opy
|Copy
 
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
Line 324: Line 355:
 
|-
 
|-
 
|Replace color
 
|Replace color
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;Click</kbd>
+
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;LClick</kbd>
 
|
 
|
 
|
 
|
Line 333: Line 364:
 
|
 
|
 
|-
 
|-
  +
|<u>F</u>lip <u>H</u>orizontal
|Flip horizontal
 
|<kbd>F</kbd>
+
|<kbd>F</kbd><br /><kbd>H</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Flip Vertical
+
|Flip <u>V</u>ertical
 
|<kbd>V</kbd>
 
|<kbd>V</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Rotate 90° CCW
+
|<u>R</u>otate 90° CCW
 
|<kbd>R</kbd>
 
|<kbd>R</kbd>
 
|
 
|
Line 356: Line 387:
 
Draw tool:
 
Draw tool:
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
  +
|<u>C</u>opy
|Copy
 
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
Line 372: Line 403:
 
|-
 
|-
 
|Replace color
 
|Replace color
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;Click</kbd>
+
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;LClick</kbd>
  +
|
  +
|
  +
|-
  +
|Color Picker
  +
|<kbd>🖰&#8239;RClick</kbd>
 
|
 
|
 
|
 
|
Line 379: Line 415:
 
Stamp tool:
 
Stamp tool:
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
 
|Stamp with color 0 transparent
 
|Stamp with color 0 transparent
|<kbd>LCtrl</kbd>+<kbd>🖰&#8239;Click</kbd>
+
|<kbd>LCtrl</kbd>+<kbd>🖰&#8239;LClick</kbd>
 
|
 
|
 
|
 
|
Line 392: Line 428:
 
Select tool:
 
Select tool:
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
 
|Select none
 
|Select none
Line 409: Line 445:
 
Lower sprite sheet area:
 
Lower sprite sheet area:
 
{| class="article-table" style="width: 100%;"
 
{| class="article-table" style="width: 100%;"
!scope="col" style="width: 34%;"|Function
+
! scope="col" style="width: 34%;" |Function
!scope="col" style="width: 22%;"|Windows
+
! scope="col" style="width: 22%;" |Windows
!scope="col" style="width: 22%;"|Linux
+
! scope="col" style="width: 22%;" |Linux
!scope="col" style="width: 22%;"|MacOS
+
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
 
|Select multiple sprites<br />(for flip, shift, copy, rotate)
 
|Select multiple sprites<br />(for flip, shift, copy, rotate)
|<kbd>Shift</kbd>+<kbd>🖰&#8239;Click+Drag</kbd>
+
|<kbd>Shift</kbd>+<kbd>🖰&#8239;LClick+Drag</kbd>
 
|
 
|
 
|
 
|
Line 424: Line 460:
   
 
==SFX editor==
 
==SFX editor==
(TODO)
+
(TODO, incomplete)
  +
{| class="article-table" style="width: 100%;"
  +
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
  +
! scope="col" style="width: 22%;" |Linux
  +
! scope="col" style="width: 22%;" |MacOS
  +
|-
  +
|Swap pitch/note views
  +
|
  +
|<kbd>Tab</kbd>
  +
|
  +
|-
  +
|Increase Speed
  +
|
  +
|<kbd>Period</kbd>
  +
|
  +
|-
  +
|Decrease Speed
  +
|
  +
|<kbd>Comma</kbd>
  +
|
  +
|-
  +
|Increase Speed by 4
  +
|
  +
|<kbd>Shift</kbd> + <kbd>Period</kbd>
  +
|
  +
|-
  +
|Decrease Speed by 4
  +
|
  +
|<kbd>Shift</kbd> + <kbd>Comma</kbd>
  +
|
  +
|-
  +
|Switch to Next Sound Effect
  +
|
  +
|<kbd>=</kbd>
  +
|
  +
|-
  +
|Switch to Previous Sound Effect
  +
|
  +
|<kbd>-</kbd>
  +
|
  +
|}
   
 
==Music editor==
 
==Music editor==
 
(TODO)
 
(TODO)
  +
[[Category:Research]]

Revision as of 23:13, 16 March 2020

!!! Work in progress !!!

Not all PICO-8 hardware has a keyboard, but when it does, there are many keyboard shortcuts that one can use. Known shortcuts are listed here.


Important: the lists below all start with the shortcuts for a QWERTY keyboard layout on a Windows build of PICO-8. Key bindings for other keyboard layouts or platform builds are only listed if they are known to be different from the Windows Build.
If your key isn't listed, or doesn't work right, try to use the Windows-style shortcut the way you would usually expect one to be done in your own OS. For instance, if you know Undo is Ctrl-Z on Windows, you'd want to try Cmd-Z on MacOS.
Also, if you are on a different regional layout, such as AZERTY or QWERTZ, try using the key that would be in the same physical position as the QWERTY key. And remember, there is a keyconfig command you can use to change in-game button assignments.
Readers with knowledge of other platforms are encouraged to fill in the blanks if they know of keys that differ from the Windows layout. Don't worry too much about following the tricky formatting in these tables, unless you want to. Feel free to just enter whatever helpful notes you have, even if they aren't put into the tables. Someone else can do the formatting later if needed. Thanks!

Global use

Function Windows Linux MacOS
Quit Alt+F4 Ctrl+Q ⌘Cmd+Q
Reload/Run/Restart Ctrl+R Ctrl+R
Quick-Save Ctrl+S Ctrl+S
Mute/unmute Ctrl+M Ctrl+M
Editor toggle Esc Esc
Full screen toggle Alt+Enter Alt+Enter ⌘Cmd+F
Save a screenshot to desktop F1 / F6
Ctrl+6
Capture cartridge label image F2 / F7
Ctrl+7
Start recording a video F3 / F8
Ctrl+8
Save GIF video to desktop F4 / F9
Ctrl+9
Toggle keyboard cursor F5 / F10
Ctrl+0
Toggle FPS display Ctrl+1
Previous editor Alt+ Alt+
Next editor Alt+ Alt+

While running

Function Windows Linux MacOS
Pause menu P / Enter

See btn() for details on default controller/keyboard mappings, and keyconfig for info on changing those mappings.


Command Line

Function Windows Linux MacOS
Copy (entire line) Ctrl+C
Paste Ctrl+V
History  ↑  /  ↓ 
End-of-line End
Ctrl+E
Start-of-line Home
Ctrl+A
Kill to end-of-line Ctrl+K
Kill to start-of-line Ctrl+U
Clear screen Ctrl+L

Text Editor

Function Windows Linux MacOS
Cut Ctrl+X
Copy Ctrl+C
Paste Ctrl+V
Select All Ctrl+A
Keyboard glyph mode toggle Ctrl+K
Insert/overwrite toggle Ins
Start of line Home
Ctrl+W
End of line End
Ctrl+E
Start of document Ctrl+Home
Ctrl+ ↑ 
End of document Ctrl+End
Ctrl+ ↓ 
Previous word Ctrl+
Next word Ctrl+
Previous function Alt+ ↑ 
Next function Alt+ ↓ 
Indent selection ⇥Tab
Un-indent selection Shift+⇥Tab
Undo Ctrl+Z
Redo Ctrl+Y
Find text in current tab Ctrl+F
Find text aGain Ctrl+G
Repeat search across tabs (Hyper search) Ctrl+H
Go to Line number Ctrl+I
Ctrl+L
Duplicate current line Ctrl+D
Toggle comment Block Ctrl+B
Switch to next tab Ctrl+⇥Tab
Switch to previous tab Ctrl+Shift+⇥Tab

Sprite editor

All tools:

Function Windows Linux MacOS
Pan tool Space+🖰 LClick+Drag
Copy Ctrl+C
Paste (at current sprite location) Ctrl+V
Undo/Redo (single-step) Ctrl+Z
Previous sprite Q
Next sprite W
Previous color 1
Next color 2
Toggle full view ⇥Tab
Replace color Ctrl+🖰 LClick
Shift by one pixel / /  ↑  /  ↓ 
Flip Horizontal F
H
Flip Vertical V
Rotate 90° CCW R
Zoom < / >
🖰 Wheel

Draw tool:

Function Windows Linux MacOS
Copy Ctrl+C
Paste (at upper left) Ctrl+V
Replace color Ctrl+🖰 LClick
Color Picker 🖰 RClick

Stamp tool:

Function Windows Linux MacOS
Stamp with color 0 transparent LCtrl+🖰 LClick

Select tool:

Function Windows Linux MacOS
Select none Enter

Fill tool:

(n/a?)

Lower sprite sheet area:

Function Windows Linux MacOS
Select multiple sprites
(for flip, shift, copy, rotate)
Shift+🖰 LClick+Drag

Map editor

(TODO)

SFX editor

(TODO, incomplete)

Function Windows Linux MacOS
Swap pitch/note views Tab
Increase Speed Period
Decrease Speed Comma
Increase Speed by 4 Shift + Period
Decrease Speed by 4 Shift + Comma
Switch to Next Sound Effect =
Switch to Previous Sound Effect -

Music editor

(TODO)