Configuration:PICO-8

From Wah!ki
Jump to navigation Jump to search


PICO-8
300px
300px
Manufacturer lexloffle
Type Fantasy Video game console
CPU N/A
GPU 128x128x16
Sound CPU 4 channels
Sound Chip TBA
Memory TBA
Controllers 2
Year XXXX

Platform Information

PICO-8 is a fantasy console for making, sharing and playing tiny games and other computer programs. It feels like a regular console, but runs on Windows / Mac / Linux. When you turn it on, the machine greets you with a commandline, a suite of cartridge creation tools, and an online cartridge browser called SPLORE.

Specifications Display 128x128 16 colours Cartridge Size 32k Sound 4 channel chip blerps Code Lua Sprites 256 8x8 sprites Map 128x32 cels

Media Devices

  • Cartridges

Integration

Each exported release of PICO-8 packages the player at the correct version for that release. The player will load a file called data.pod from the current directory when launched.


We can integrate PICO-8 with a frontend by writing a wrapper script to launch copy and launch the pod in place.


You can update the player from any new release providing the developer has exported a version for your platform


For example. POOM used a custom PICO-8 build but the dev didn't export an RPI version, so the RPI version cannot be updated to run POOM currently.


See wrapper script

Wrapper Script

This script will load multiple versions of the player and/or multiple arch based on the the output of uname but requires the following folder structure for the players

.
├── players
│   ├── armv7l
│   │   └── player_0.2.1B-armv7l
│   └── x86_64
│       ├── player_0.2.1B-x86_64
│       └── player_0.2.1C.14-x86_64


```


#!/bin/bash
#
# PICO-8 Player launcher - sairuk
# For use with packaged player and all pod files, player versions must be >=
# pod version
#
#
#set -u
#set -x
IFS=$'\n'

function usage {
  echo "PICO-8 launcher"

  if [ ! -z $1 ]
  then
    echo "Error: $1"
    sleep 3
  fi
  echo "Usage: $(basename $0) \"/path/to/filename.pod\""
  exit 1
}

ARCH=$(uname -m)
GAME=${1:-}
RUN_VER=${2:-0.2.1B}

BASEPATH=/home/pi/RetroPie/scripts/pico8player
#BASEPATH=$HOME/games/pico-8-player
PLAY_STORE=players
PLAY_NAME=player
PLAY_VER=${BASEPATH}/${PLAY_STORE}/${ARCH}/${PLAY_NAME}_${RUN_VER}-${ARCH}
RUN_PATH=${BASEPATH}/_run
RUN_POD=${RUN_PATH}/data.pod
RUN_PLYR=${RUN_PATH}/${PLAY_NAME}
RUN_LOG=${RUN_PATH}/pico8player.log

### check requirements
# we have a name passed as first arg
[ -z $GAME ] && usage
# that game file exists
[ ! -f $GAME ] && usage "File does not exist: ${GAME}"
# player path exists
[ ! -d ${PLAY_STORE} ] && mkdir -p ${PLAY_STORE}
# player file exists
[ ! -f ${PLAY_VER} ] && usage "Couldn't find player in ${PLAY_VER}"
# the expected run dir exists
[ ! -d ${RUN_PATH} ] && mkdir -p ${RUN_PATH}
# clean up an existing data.pod files
[ -e ${RUN_POD} ] && rm ${RUN_POD}
# copy the game to run path as data.pod
cp "${GAME}" ${RUN_POD}
# copy the player to the run path
cp ${PLAY_VER} ${RUN_PLYR}
# change into our run path
cd ${RUN_PATH}
# run the game
${RUN_PLYR} &> ${RUN_LOG}
# clean up after we are done
rm $RUN_POD $RUN_PLYR

Configuration

Platform Version Device Exec Type commandline_format
Linux <=0.1.12c2+ ROM <path to pico8>/pico8-wrapper W [name].pod

Converting a cart to a pod

You can export a cart to a pod from the PICO-8 command line using -export but you will need the full PICO-8 release to do this

$ ./pico8 -export zoomzoomzoomzoom.bin "~/carts/ZOOMZOOMZOOMZOOM 0.2 - (LJRadio) (18711) (18711).p8.png"
EXPORT: zoomzoomzoomzoom.bin
zoomzoomzoomzoom.bin
zoomzoomzoomzoom.bin/windows
zoomzoomzoomzoom.bin/linux
zoomzoomzoomzoom.bin/zoomzoomzoomzoom.app
zoomzoomzoomzoom.bin/raspi
zoomzoomzoomzoom_windows.zip
zoomzoomzoomzoom_linux.zip
zoomzoomzoomzoom_osx.zip
zoomzoomzoomzoom_raspi.zip
ok


External Links