Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

FAKE-08 Switch

From GameBrew
Revision as of 07:04, 1 April 2023 by HydeWing (talk | contribs)
FAKE-08
File:Fake08switch.png
General
Authorjtothebell
TypeOther Emulators
Version0.0.2.20
LicenseMIT License
Last Updated2023/03/11
Links
Download
Website
Source

Fake-08 is a Pico-8 player designed for homebrew consoles, which is not associated with or supported by Lexaloffle Software. Its latest release includes versions for Nintendo 3DS, Sony PS Vita, Nintendo Wii U, the Miyoo CFW for Bittboy and similar consoles, and the Miyoo Mini.

Usage

  1. Downlaod the latest release here.
  2. Pico 8 cart files go in the p8carts/ directory of your memory card (SD card on Switch). .p8 text file carts and .p8.png image file carts are supported.
  3. Launch FAKE-08 either via the homebrew menu

Screenshots

fake08vita3.png fake08vita4.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.

External links

Advertising: