FAKE-08 Vita

From GameBrew
FAKE-08
Fake08vita2.png
General
Authorjtothebell
TypeComputer
Version0.0.2.20
LicenseMixed
Last Updated2023/03/11
Links
Download
Website
Source

A Pico 8 player for homebrew consoles. The goal of Fake-08 is to make Pico-8 games playable on platforms that aren't officially supported. Latest release includes releases for Nintendo 3DS, Nintendo Switch, Sony PS Vita, Nintendo Wii U, the Miyoo CFW for bittboy and similar consoles, and the Miyoo Mini.

Originally created by Lexaloffle Software, PICO-8 is a virtual machine and game engine. It is designed to be a fantasy video game console that mimics the limited graphical and sound capabilities of 8-bit systems of the 1980s.

Installation

Download VPK and install with VitaShell on Vita.

Pico 8 cart files go in ux0:/p8carts/.

.p8 text file carts and .p8.png image file carts are supported.

User guide

You can download games from the Pico-8 BBS in .p8.png format. Click on the Cart link in the lower left of the game view, and save it into your p8carts directory. Here are some games that you can try out, simply right click on the image and save it (credit list):

harold-5.p8.pngppwr-2.p8.pngpicotetris-5.p8.pngtinygolfpuzzles-1.p8.pngbondstones-0.p8.png

If you are trying to play a multi cart game, it should be noted that you must provide all the carts required by the game as FAKE-08 currently does not have cart downloading capabilities. All carts should be placed in the same directory.

See also FAKE-08 Cart Compatibility.

Controls

Left/Right - Cycle through carts on the SD card

Cross - Choose a cart

Start - Pause menu, Exit the currently running cart

R - Cycle between rendering sizes

L+R or Home - Exit the application

Screenshots

fake08vita3.pngfake08vita4.png

Known issues

Latest Pico 8 version v0.2.2 features (sprite fill patterns, text control codes, custom fonts, etc) not implemented yet.

Games using flip() (like tweetcarts) have intermittent problems exiting back to the menu, and may crash the console. Use with caution.

Sound emulation is not perfect, and the noise implementation is noticeably inaccurate. Most of my sound implementation was ported over from Zepto 8. with the exception of the Noise instrument which was ported from PicoLove. It is not 100% accurate, and some games have noticeable clipping/popping.

See Issues page for more specifics.

Changelog

v0.0.2.20

  • All Platforms:
    • Add support for new stat values (46-56) for audio (thanks @fringd ).
    • Rewrite text rendering to support custom fonts and most remaining P8SCII control codes (audio control codes are parsed, but not played) and speed up text rendering (probably only noticeable on slow platforms like Bittboy and 3ds).
    • Add a corssfade between notes to more closely match PICO-8 behavior and fix some audio clipping (thanks @fringd ).
    • Add custom instrument support (thanks @fringd ).
    • add inext function to z8lua.
  • Libretro platforms:
    • Add support for analog input to emulate the mouse (thanks for the suggestion and start of implementation @medeirosT).
    • Add support for loading carts from memory in addition to the file system (may help with loading carts on Android devices with scoped storage).

v0.0.2.19

  • Fix behavior when drawing coordinates beyond sprite sheet bounds.
  • Fix mget bounds check being off by one on upper bounds (fixes some visual artifacts in map() and tline() calls).
  • Fix some text wrapping bugs.
  • Fix some text coloring bugs.
  • Fix bugs keeping track of smaller than default character size and line heights.
  • Fix a bug with music playback where looping sections were cut short (thanks @fringd).

v0.0.2.18

  • Add an alternate cart and settings menu (thanks @DPS2004 ). Access settings through the pause menu, and turn on new cart menu from there.
  • Add support for ? print shorthand in locations other than the start of a line
  • Add support for pal with a single argument for resetting an individual palette (thanks @SamsTheNerd)
  • Prevent infinite loops caused by aggressive compiler optimizations preventing correct identification of max fix32 value
  • Add undocumented _set_fps function
  • stub out stat(29) and stat(30) to prevent erroneous keyboard press detection (fix weapon switching in Poom)
  • Improve support for suppressing the pause menu (also makes switching weapons easier in Poom)
  • Fix memory functions (peek, poke, memset, memcpy) at addresses above 0x8000 (thanks @nckstwrt)
  • Fix ord call with very long strings from overflowing (thanks @nckstwrt)
  • Fix lua parsing when a number is next to a keyword staring with "e" (ie end or else) (thanks (@nckstwrt)
  • Fix p8scii control code for background colors not using correct dimensions
  • Add support for p8scii control code one off characters
  • Improve handling of multiline comments (still needs work, but is improved)

v0.0.2.17

Bug Fixes:

  • Improve image quality of non-integer scaled images by using wide mode.
  • Fix loading multi cart games.

All platforms:

  • Honor print mode defaults poked into memory.
  • Refactor cartdata serialization and deserialization to work consistently across CPU architectures.
  • Add reset function.
  • Fix regression in mget bounds checking.
  • support extra arguments to poke2 and poke4.
  • Fix map default values if width has been changed and/or large map is being used.
  • Honor suppress pause menu flag.
  • Fix tline wrapping.
  • Fix passing a param to load if there is a nil breadcrumb.
  • Added support for getting key presses via stat (currently only supported on debug builds- Thanks @DPS2004).

v0.0.2.16

Bug Fixes:

  • Stub out stat values 120-122 (fix some crashing carts).
  • Fix setting map width to 256 (0).
  • Fix cartdata return value (credit to @DPS2004).
  • music pattern playback with a non-standard length (credit @DPS2004).

Improvements:

  • Fix local references of pico 8 api methods (possible small performance boost).
  • Add support for optional peek and poke arguments.
  • Add support for most P8SCII control codes (no audio or decoration characters yet).
  • Add support for menu item value changes (credit @DPS2004).

Release notes.

Credits

  • Zep/Lexaloffle software for making pico 8.
  • Nintendo Homebrew Community.
  • Vita Homebrew Community.
  • zepto8 - Probably the best Pico 8 emulator. FAKE-08's audio, tline, and newer png decompression implementations were ported from zepto8, and other parts were heavily influenced. Alsod use a slightly modified z8lua for pico 8 specific features.
  • PicoLove - Basis for a previous project - PicoLovePotion - and first learned the basics of Pico 8's API.
  • tac08 - A Pico 8 emulator. FAKE-08's sprite rendering and cart parsing is heavily based on tac08, and it uses 0xcafed00d's utf8-util to handle special characters in pico 8 carts.
  • LovePotion - An implementation of Love2d for 3DS and switch that served as the runtime for PicoLovePotion, and a great way to make homebrew games for the 3DS and switch. Also use a modified version of their static Logger implementation.

Postcard image from Vita Sprite credits:

PICO-8 games:

External links

Advertising: