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

FAKE-08 Switch: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 1: Line 1:
{{Infobox Switch Homebrews
{{Infobox Switch Homebrews
|title=FAKE-08
|title=FAKE-08
|image=fake08switch.png
|image=fake08nx.png
|description=a homebrew Pico 8 Emulator.
|description=A Pico-8 player/emulator for console homebrew.
|author=jtothebell
|author=jtothebell
|lastupdated=2023/03/11
|lastupdated=2023/03/11
Line 8: Line 8:
|version=0.0.2.20
|version=0.0.2.20
|license=MIT
|license=MIT
|download=https://dlhb.gamebrew.org/switchhomebrews/fake08switch.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/fake08nx.7z
|website=https://gbatemp.net/threads/release-fake-08-probably-the-best-3rd-party-pico-8-emulator.608579/
|website=https://gbatemp.net/threads/release-fake-08-probably-the-best-3rd-party-pico-8-emulator.608579/
|source=https://github.com/jtothebell/fake-08
|source=https://github.com/jtothebell/fake-08
|donation=  
|donation=  
}}
}}
{{#seo:
Fake-08 is a homebrew PICO-8 emulator, the latest release is available for [[FAKE-08 3DS|Nintendo 3DS]], [[FAKE-08 Vita|Sony PS Vita]], Nintendo Wii U, the Miyoo CFW for Bittboy and similar consoles, and the Miyoo Mini.
|title=Switch Homebrew Emulators (Other Emulators) - GameBrew
 
|title_mode=append
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. The goal of this is to spur one's creativity and ingenuity in producing games, and avoid being overwhelmed with the many possibilities of modern tools and machines. Such a design also allows PICO-8 games to have a familiar look and feel.
|image=fake08switch.png
 
|image_alt=FAKE-08
==Installation==
}}
Download the [https://github.com/jtothebell/fake-08/releases latest release] and place the .nro file to sdmc:/switch/FAKE-08/.
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 [[FAKE-08 3DS|Nintendo 3DS]], [[FAKE-08 Vita|Sony PS Vita]], Nintendo Wii U, the Miyoo CFW for Bittboy and similar consoles, and the Miyoo Mini.
 
Create a folder sdmc:/p8carts/ and place the game cart PNG's there.
 
FAKE-08 supports .p8 text file carts and .p8.png image file carts.
 
Launch FAKE-08 either via the homebrew menu.
 
==User guide==
You can download games from the [https://www.lexaloffle.com/bbs/?cat=7#sub=2 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 ([[#Credits|credit list]]):
 
https://dlhb.gamebrew.org/vitahomebrews/harold-5.p8.png
https://dlhb.gamebrew.org/vitahomebrews/ppwr-2.p8.png
https://dlhb.gamebrew.org/vitahomebrews/picotetris-5.p8.png
https://dlhb.gamebrew.org/vitahomebrews/tinygolfpuzzles-1.p8.png
https://dlhb.gamebrew.org/vitahomebrews/bondstones-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 [https://github.com/jtothebell/fake-08/wiki/Cart-Compatibility FAKE-08 Cart Compatibility].
==Controls==
Plus - Open the menu, Exit carts
 
R - Cycle between rendering sizes
 
A - X


==Usage==
B - O
#Downlaod the latest release here.
#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.
#Launch FAKE-08 either via the homebrew menu


==Screenshots==
L+R - Wxit FAKE-08
https://dlhb.gamebrew.org/vitahomebrews/fake08vita3.png
https://dlhb.gamebrew.org/vitahomebrews/fake08vita4.png


==Known issues==
==Known issues==
Line 41: Line 60:
==Changelog==
==Changelog==
'''v0.0.2.20'''
'''v0.0.2.20'''
* All Platforms
* All Platforms:
** Add support for new stat values (46-56) for audio (thanks @fringd )
** Add support for new <code>stat</code> 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)
** 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 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 custom instrument support (thanks @fringd).
** add inext function to z8lua
** add <code>inext</code> function to z8lua.
* Libretro platforms
* Libretro platforms:
** Add support for analog input to emulate the mouse (thanks for the suggestion and start of implementation @medeirosT)
** 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)
** 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'''
'''v0.0.2.19'''
* Fix behavior when drawing coordinates beyond sprite sheet bounds
* All Platforms:
* Fix mget bounds check being off by one on upper bounds (fixes some visual artifacts in map() and tline() calls)
** Fix behavior when drawing coordinates beyond sprite sheet bounds.
* Fix some text wrapping bugs
** Fix mget bounds check being off by one on upper bounds (fixes some visual artifacts in map() and tline() calls).
* Fix some text coloring bugs
** Fix some text wrapping bugs.
* Fix bugs keeping track of smaller than default character size and line heights
** Fix some text coloring bugs.
* Fix a bug with music playback where looping sections were cut short (thanks @fringd)
** 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).
* Miyoo Mini (standalone app):
** Add double buffering to fix occasional screen tearing.
* New Platforms:
** Add experimental libretro builds for Miyoo Mini and Android.
** NOTE: when using either libretro core, you may need to also add <code>fake08_libretro.info</code> to your cores directory for some features like save states to work. This file should now be included in the release zip. Slightly more detailed instructions in the <code>Usage</code> section of the readme.


'''v0.0.2.18'''
'''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.
* All Platforms:
* Add support for ? print shorthand in locations other than the start of a line
** 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 pal with a single argument for resetting an individual palette (thanks @SamsTheNerd)
** Add support for <code>?</code> print shorthand in locations other than the start of a line.
* Prevent infinite loops caused by aggressive compiler optimizations preventing correct identification of max fix32 value
** Add support for <code>pal</code> with a single argument for resetting an individual palette (thanks @SamsTheNerd).
* Add undocumented _set_fps function
** Prevent infinite loops caused by aggressive compiler optimizations preventing correct identification of max fix32 value.
* stub out stat(29) and stat(30) to prevent erroneous keyboard press detection (fix weapon switching in Poom)
** Add undocumented <code>_set_fps</code> function.
* Improve support for suppressing the pause menu (also makes switching weapons easier in Poom)
** stub out <code>stat(29)</code> and <code>stat(30)</code> to prevent erroneous keyboard press detection (fix weapon switching in Poom).
* Fix memory functions (peek, poke, memset, memcpy) at addresses above 0x8000 (thanks @nckstwrt)
** Improve support for suppressing the pause menu (also makes switching weapons easier in Poom).
* Fix ord call with very long strings from overflowing (thanks @nckstwrt)
** Fix memory functions (<code>peek, poke, memset, memcpy</code>) at addresses above 0x8000 (thanks @nckstwrt).
* Fix lua parsing when a number is next to a keyword staring with "e" (ie end or else) (thanks (@nckstwrt)
** Fix ord call with very long strings from overflowing (thanks @nckstwrt).
* Fix p8scii control code for background colors not using correct dimensions
** Fix lua parsing when a number is next to a keyword staring with "e" (ie <code>end</code> or <code>else</code>) (thanks (@nckstwrt).
* Add support for p8scii control code one off characters
** Fix p8scii control code for background colors not using correct dimensions.
* Improve handling of multiline comments (still needs work, but is improved)
** Add support for p8scii control code one off characters.
** Improve handling of multiline comments (still needs work, but is improved).
* Miyoo Mini:
** Fix non 128x128 rendering modes.
* Bittboy and GCW0:
** Ensure cdata directory is created.


'''v0.0.2.17'''
'''v0.0.2.17'''
 
* 3ds:
Bug Fixes:
** Improve image quality of non-integer scaled images by using wide mode.
* Improve image quality of non-integer scaled images by using wide mode.
** Fix loading multi cart games.
* Fix loading multi cart games.
* Miyoo Mini:
 
** Fix cart data saving and loading.
All platforms:
* Bittboy:
* Honor print mode defaults poked into memory.
** Add a 240x240 rendering mode.
* Refactor cartdata serialization and deserialization to work consistently across CPU architectures.
* All platforms:
* Add reset function.
** Honor print mode defaults poked into memory.
* Fix regression in mget bounds checking.
** Refactor cartdata serialization and deserialization to work consistently across CPU architectures.
* support extra arguments to poke2 and poke4.
** Add reset function.
* Fix map default values if width has been changed and/or large map is being used.
** Fix regression in mget bounds checking.
* Honor suppress pause menu flag.
** support extra arguments to poke2 and poke4.
* Fix tline wrapping.
** Fix map default values if width has been changed and/or large map is being used.
* Fix passing a param to load if there is a nil breadcrumb.
** Honor suppress pause menu flag.
* Added support for getting key presses via stat (currently only supported on debug builds- Thanks @DPS2004).
** 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'''
'''v0.0.2.16'''
 
* Bug Fixes:
Bug Fixes:
** Stub out stat values 120-122 (fix some crashing carts).
* Stub out stat values 120-122 (fix some crashing carts).
** Fix setting map width to 256 (0).
* Fix setting map width to 256 (0).
** Fix cartdata return value (credit to @DPS2004).
* Fix cartdata return value (credit to @DPS2004).
** music pattern playback with a non-standard length (credit @DPS2004).
* music pattern playback with a non-standard length (credit @DPS2004).
* Improvements:
 
** Fix local references of pico 8 api methods (possible small performance boost).
Improvements:
** Add support for optional peek and poke arguments.
* Fix local references of pico 8 api methods (possible small performance boost).
** Add support for most P8SCII control codes (no audio or decoration characters yet).
* Add support for optional peek and poke arguments.
** Add support for menu item value changes (credit @DPS2004).
* Add support for most P8SCII control codes (no audio or decoration characters yet).
* Add support for menu item value changes (credit @DPS2004).


[https://github.com/jtothebell/fake-08/releases Release notes.]
[https://github.com/jtothebell/fake-08/releases Release notes.]
Line 116: Line 146:
* [https://github.com/0xcafed00d/tac08 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.
* [https://github.com/0xcafed00d/tac08 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.
* [https://github.com/TurtleP/LovePotion 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.
* [https://github.com/TurtleP/LovePotion 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:
* [https://www.lexaloffle.com/bbs/?pid=13897#p Rabu Rabu Monster] by pedroavelar (No License).
* [https://www.lexaloffle.com/bbs/?pid=16886#p Rainy Day Friends] by electricgryphon (CC4-BY-NC-SA License).
* [https://www.lexaloffle.com/bbs/?pid=44647#p chrysopoeia] by benjamin_soule (No License).
* [https://www.lexaloffle.com/bbs/?pid=46990#p warehouse panic] by benjamin_soule (No License).
* [https://www.lexaloffle.com/bbs/?pid=54395#p Barp the Balldragon] by Saffith (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=celeste_classic_2-5#p Celeste Classic 2] by noel (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=d16solais-0#p Solais] by DragonXVI (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=demon_castle-1#p Demon Castle] by Mush (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=fuz_v1-1.p8#p Fuz] by Jusiv (No License).
* [https://www.lexaloffle.com/bbs/?pid=islander-4.p8#p Islander] by CarsonK (No License).
* [https://www.lexaloffle.com/bbs/?pid=littlenecromancer-4.p8#p Little Necromancer] by Fred_Osterero (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=nano_villager-0.p8#p Villager] by partnano (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=picodriller-0.p8#p Pico Driller] by johanp (No License).
* [https://www.lexaloffle.com/bbs/?pid=pigments-0.p8#p pigments] by benjamin_soule (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=polarpanic-0.p8#p Polar Panic] by johanp (No License).
* [https://www.lexaloffle.com/bbs/?pid=ruwukawisa-0.p8#p Little Architect] by benjamin_soule (No License).
* [https://www.lexaloffle.com/bbs/?pid=scrap_boy-4.p8#p Scrap Boy] by BoneVole (CC4-BY-NC-SA).
* [https://www.lexaloffle.com/bbs/?pid=shelledshinobi1-7.p8#p Shelled Shinobi] by noppa (No License).
* [https://www.lexaloffle.com/bbs/?pid=ufo-0.p8#p UFO Swamp Odyssey] by paranoidcactus (CC4-BY-NC-SA).
[[FAKE-08_Vita#Installation|PICO-8 games]]:
*[https://www.lexaloffle.com/bbs/?tid=45507 Harold's Bad Day] by biovoid.
*[https://www.lexaloffle.com/bbs/?tid=46495 Pico World Race 1.2] by PAK9.
*[https://www.lexaloffle.com/bbs/?tid=38532 bondstones] by benjamin_soule.
*[https://www.lexaloffle.com/bbs/?tid=38918 Tiny Golf Puzzles] by beepyeah.
*[https://www.lexaloffle.com/bbs/?tid=33775 Pico Tetris v1.0] by Vanessa.


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/release-fake-08-probably-the-best-3rd-party-pico-8-emulator.608579/
* GitHub - https://github.com/jtothebell/fake-08
* Github - https://github.com/jtothebell/fake-08
* GBAtemp - https://gbatemp.net/threads/release-fake-08-probably-the-best-3rd-party-pico-8-emulator.608579/

Revision as of 07:53, 25 Mayıs 2023

FAKE-08
Fake08nx.png
General
Authorjtothebell
TypeOther Emulators
Version0.0.2.20
LicenseMIT License
Last Updated2023/03/11
Links
Download
Website
Source

Fake-08 is a homebrew PICO-8 emulator, the latest release is available for Nintendo 3DS, 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. The goal of this is to spur one's creativity and ingenuity in producing games, and avoid being overwhelmed with the many possibilities of modern tools and machines. Such a design also allows PICO-8 games to have a familiar look and feel.

Installation

Download the latest release and place the .nro file to sdmc:/switch/FAKE-08/.

Create a folder sdmc:/p8carts/ and place the game cart PNG's there.

FAKE-08 supports .p8 text file carts and .p8.png image file carts.

Launch FAKE-08 either via the homebrew menu.

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.png ppwr-2.p8.png picotetris-5.p8.png tinygolfpuzzles-1.p8.png bondstones-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

Plus - Open the menu, Exit carts

R - Cycle between rendering sizes

A - X

B - O

L+R - Wxit FAKE-08

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

  • All Platforms:
    • 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).
  • Miyoo Mini (standalone app):
    • Add double buffering to fix occasional screen tearing.
  • New Platforms:
    • Add experimental libretro builds for Miyoo Mini and Android.
    • NOTE: when using either libretro core, you may need to also add fake08_libretro.info to your cores directory for some features like save states to work. This file should now be included in the release zip. Slightly more detailed instructions in the Usage section of the readme.

v0.0.2.18

  • All Platforms:
    • 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).
  • Miyoo Mini:
    • Fix non 128x128 rendering modes.
  • Bittboy and GCW0:
    • Ensure cdata directory is created.

v0.0.2.17

  • 3ds:
    • Improve image quality of non-integer scaled images by using wide mode.
    • Fix loading multi cart games.
  • Miyoo Mini:
    • Fix cart data saving and loading.
  • Bittboy:
    • Add a 240x240 rendering mode.
  • 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: