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

FAKE-08 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 4: Line 4:
|description=A Pico 8 player for homebrew consoles.
|description=A Pico 8 player for homebrew consoles.
|author=jtothebell
|author=jtothebell
|lastupdated=2021/06/24
|lastupdated=2021/09/06
|type=Other Games
|type=Computer
|version=0.0.2.10
|version=0.0.2.13
|license=Mixed
|license=MIT
|download=https://dlhb.gamebrew.org/3dshomebrew/fake-08v0.0.2.10.7z
|download=https://dlhb.gamebrew.org/3dshomebrews/fake083ds.7z
|website=https://github.com/jtothebell/fake-08
|website=https://github.com/jtothebell/fake-08
|source=https://github.com/jtothebell/fake-08
|source=https://github.com/jtothebell/fake-08
}}
}}
<youtube>V9GcebYHtq4</youtube>
fake-08 is a homebrew PICO-8 emulator, the latest release is available for Nintendo 3DS, Nintendo Switch, Sony PS Vita, and Nintendo Wii U.


== fake-08 ==
Originally created by Lexaloffle Software, PICO-8 is a virtual machine and game engine created by Lexaloffle Games. It is 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.


A Pico 8 player for homebrew consoles. Not related to or supported by Lexaloffle Software. [https://github.com/jtothebell/fake-08/releases Latest release] includes releases for Nintendo 3DS, Nintendo Switch, Sony PS Vita, and Nintendo Wii U.
==Installation==
Available in 3DSX and CIA formats.
* CIA - Install the .cia with the CIA manager of your choice.
* 3DSX - Use the .3dsx provided with the Homebrew Launcher.


== Usage: ==
Pico 8 cart files go in the p8carts directory of your SD card. Fake-08 supports .p8 text file carts and .p8.png image file carts.


Installation will vary by console and executable type. If it is a console with a homebrew menu (Switch, Wii U, 3DS using .3dsx), place the executable file in the directory with other executables. If it is a console with installable hombrew (3ds with .cia, or PS Vita) install executable (VitaShell on Vita or FBI on 3DS).
==User guide==
You browse and download carts by using the <code>SPLORE()</code> function in Pico 8 (again, if you have $15 to spend, and you are interested in game dev, it is well worth your money). Once you have loaded a cart that you want to try on FAKE-08, type save <code>{{cartname}}.p8</code> to save the cart as a text file, then copy that file to your device's SD card.


Pico 8 cart files go in the <code>p8carts/</code> directory of your memory card (SD card on 3DS, Switch, and Wii U, memory card at <code>ux0:/</code> on Vita). <code>.p8</code> text file carts and <code>.p8.png</code> image file carts are supported.
You can also browse carts on the [https://www.lexaloffle.com/bbs/ Pico-8 BBS website], but can only download complete carts in png format. As of pre release v0.0.1.1 Fake-08 should load and play png carts provided they don't use any other unsupported features. You can download p8.png carts from the Cart link in the lower left of the game view, and save it into your p8carts directory.


Launch FAKE-08 either via the homebrew menu or normal system UI (depending on how you installed). Use left and right to cycle through carts on the SD card. Choose a cart using the <code>A</code> (Nintendo consoles) or <code>X</code>(Vita) button. To exit the currently running cart, press <code>Start</code> or <code>+</code> to open the pause menu and select <code>Exit to Menu</code>. Press <code>R</code> to cycle between rendering sizes. Press <code>L</code> and <code>R</code> simultaneously to exit the appication. You can also close it via your console's operating system controls (home button etc).
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.


== Building: ==
See also [https://github.com/jtothebell/fake-08/wiki/Cart-Compatibility Fake-08 cart compatibility list].


All platforms have automated builds set up via GitHub actions using docker images. You can see how those are set up in the <code>.github/workflows</code> directory of the repo.
==Controls==
Left/Right - Nagigate carts 1 by 1


Building outside of a pre-setup docker container will require a toolchain installation for the platform that you want to build.
Up/Down - Navigate carts 10 by 10


For the Nintendo consoles, install the appropriate toolchain from devkitpro (see https://devkitpro.org/wiki/Getting_Started). Switch and Wii U also require the platform specific SDL2 portlibs to be installed.
A - Load selected cart


Building for the Vita requires Vita SDK (see https://vitasdk.org/) to be installed.
Start - Close selected cart


Once you have the appropriate toolchain(s) installed, call <code>make</code> followed by the platform name (<code>3ds</code>, <code>switch</code>, <code>vita</code>, or <code>wiiu</code>) to build that platform, or just <code>make</code> to build them all. <code>make clean</code> will clean all files from all platforms.
Select - Cycle screen sizes


Building tested on windows using devkitpro's msys2 and Ubuntu (WSL and standalone). Should work on other plaforms as well.
L+R - Exit


== Acknowledgements ==
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/fake083ds3.png
https://dlhb.gamebrew.org/3dshomebrews/fake083ds4.png


* Zep/Lexaloffle software for making pico 8. Buy a copy if you can. You won't regret it. https://www.lexaloffle.com/pico-8.php
https://dlhb.gamebrew.org/3dshomebrews/fake083ds5.png
* Nintendo Homebrew Community
https://dlhb.gamebrew.org/3dshomebrews/fake083ds6.png
* Vita Homebrew Community
* zepto8 (https://github.com/samhocevar/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. I also use a slightly modified z8lua (https://github.com/samhocevar/z8lua) for pico 8 specific features.
* PicoLove (https://github.com/gamax92/picolove) - basis for my previous project - PicoLovePotion - and where I first learned the basics of Pico 8's API
* tac08 (https://github.com/0xcafed00d/tac08) - a Pico 8 emulator that I leared a lot from. 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 (https://github.com/TurtleP/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. I also use a modified version of their static Logger implementation


See LICENSE.MD for FAKE-08 license (MIT) as well as licenses of all other software used
==Media==
 
'''FAKE-08 (PICO-8) | 3DS, Vita, Switch & Wii U | Games Showcase''' ([https://www.youtube.com/watch?v=V9GcebYHtq4 Stranno]) <br>
== Known Issues: ==
<youtube>V9GcebYHtq4</youtube>


Latest Pico 8 version v0.2.2 features (sprite fill patterns, text control codes, custom fonts, etc) not implemented yet
==Compatibility==
Performance is not great on Old 3DS systems. Some games may experience slowdowns on the faster consoles as well.  


Games using <code>flip()</code> (like tweetcarts) have intermittent problems exiting back to the menu, and may crash the console. Use with caution.
More optimizations are probably possible, but keep in mind that Pico 8 lists a raspberry pi 1 with a 700 MHz ARM11 professor as minimum spec, and the old 3DS's CPU is 268 MHz ARM11.  


Sound emulation is missing effects, and the noise implementation is wildly inaccurrate. Most of my sound implementation was ported over from Zepto 8 (a much more accurrate emulator) but I didn't want to bring over dependencies that were needed for those parts, and haven't otherwise implemented them yet
Many games should be playable regardless, and hopefully more optimizations can be made.


Sound currently not supported on Wii U. I also suspect there may be some bugs with peeking and poking multibyte values on the Wii U given its Big Endian architecture, but have not confirmed
==Known issues==
 
Latest Pico 8 version v0.2.2 features (sprite fill patterns, text control codes, custom fonts, etc) not implemented yet
Performance is not great on Old 3ds systems. Some games may experience slowdowns on the faster consoles as well. More optimizations are probably possible, but keep in mind that Pico 8 lists a raspberry pi 1 with a 700 MHz ARM11 professor as minimum spec, and the old 3DS's CPU is 268 MHz ARM11. Many games should be playable regardless.


See [https://github.com/jtothebell/fake-08/issues Issues] page for more specifics
<code>Games using flip()</code> (like tweetcarts) have intermittent problems exiting back to the menu, and may crash the console. Use with caution.


== Carts ==
Sound emulation is not perfect, and the noise implementation is noticably inaccurrate. 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 noticable clipping/popping.


You browse and download carts by using the <code>SPLORE()</code> function in Pico 8 (again, if you have $15 to spend, and you are interested in game dev, it is well worth your money). Once you have loaded a cart that you want to try on FAKE-08, type <nowiki>save {{cartname}}.p8</nowiki> to save the cart as a text file, then copy that file to your device's SD card.
See [https://github.com/jtothebell/fake-08/issues issues page] for more specifics.


You can also browse carts on the Pico-8 BBS website, but can only download complete carts in png format. As of pre release v0.0.1.1 Fake-08 should load and play png carts provided they don't use any other unsupported features. You can download p8.png carts from the <code>Cart</code> link in the lower left of the game view, and save it into your <code>p8carts</code> directory.
==Credits==
* [https://www.lexaloffle.com/pico-8.php Zep/Lexaloffle software] for making pico 8. Buy a copy if you can. You won't regret it.
* Nintendo Homebrew Community.
* Vita Homebrew Community.
* [https://github.com/samhocevar/zepto8 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 [https://github.com/samhocevar/z8lua z8lua] for pico 8 specific features.
* [https://github.com/gamax92/picolove PicoLove] - Basis for a previous project - PicoLovePotion - and first learned the basics of Pico 8's API.
* [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.


== Other Notes ==
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).


Compatibility is improving, but not perfect. I think many carts ''should'' work, but this is still a project in the early stages, and it is my first real foray into C or C++ development and low level game dev in general. I'm mostly doing this project as a fun way to learn.
==Changelog==
'''v0.0.2.13'''
* Add breadcrumb menu items for multi cart games. Games like Pico Arcade and the Christmas carts should work now as long as you provide all the sub carts as well (still no auto downloading).
* Optimize shape drawing (rectfill, circfill, are much faster if there is no fill pattern).
* Small optimization to sprite blitting (hopefully more to come here).


Feel free to write up any issues you come across, and attach or link to a cart that reproduces the issue. My main goal is to improve compatibility with Pico 8, and then improve speed of carts that are too slow on New 3DS systems.
[https://github.com/jtothebell/fake-08/releases Release notes.]


== Postcard Image From Vita Sprite Credits: ==
==External links==
* GitHub - https://github.com/jtothebell/fake-08
* Reddit - https://www.reddit.com/r/vitahacks/comments/m3um3j/release_fake08_a_homebrew_pico_8_emulator


* Rabu Rabu Monster (https://www.lexaloffle.com/bbs/?pid=13897#p) by pedroavelar (No License)
[[Category:3DS homebrew emulators]]
* Rainy Day Friends (https://www.lexaloffle.com/bbs/?pid=16886#p) by electricgryphon (CC4-BY-NC-SA License)
[[Category:Homebrew computer emulators on 3DS]]
* chrysopoeia (https://www.lexaloffle.com/bbs/?pid=44647#p) by benjamin_soule (No License)
* warehouse panic (https://www.lexaloffle.com/bbs/?pid=46990#p) by benjamin_soule (No License)
* Barp the Balldragon (https://www.lexaloffle.com/bbs/?pid=54395#p) by Saffith (CC4-BY-NC-SA)
* Celeste Classic 2 (https://www.lexaloffle.com/bbs/?pid=celeste_classic_2-5#p) by noel (CC4-BY-NC-SA)
* Solais (https://www.lexaloffle.com/bbs/?pid=d16solais-0#p) by DragonXVI (CC4-BY-NC-SA)
* Demon Castle (https://www.lexaloffle.com/bbs/?pid=demon_castle-1#p) by Mush (CC4-BY-NC-SA)
* Fuz (https://www.lexaloffle.com/bbs/?pid=fuz_v1-1.p8#p) by Jusiv (No License)
* Islander (https://www.lexaloffle.com/bbs/?pid=islander-4.p8#p) by CarsonK (No License)
* Little Necromancer (https://www.lexaloffle.com/bbs/?pid=littlenecromancer-4.p8#p) by Fred_Osterero (CC4-BY-NC-SA)
* Villager (https://www.lexaloffle.com/bbs/?pid=nano_villager-0.p8#p) by partnano (CC4-BY-NC-SA)
* Pico Driller (https://www.lexaloffle.com/bbs/?pid=picodriller-0.p8#p) by johanp (No License)
* pigments (https://www.lexaloffle.com/bbs/?pid=pigments-0.p8#p) by benjamin_soule (CC4-BY-NC-SA)
* Polar Panic (https://www.lexaloffle.com/bbs/?pid=polarpanic-0.p8#p) by johanp (No License)
* Little Architect (https://www.lexaloffle.com/bbs/?pid=ruwukawisa-0.p8#p) by benjamin_soule (No License)
* Scrap Boy (https://www.lexaloffle.com/bbs/?pid=scrap_boy-4.p8#p) by BoneVole (CC4-BY-NC-SA)
* Shelled Shinobi (https://www.lexaloffle.com/bbs/?pid=shelledshinobi1-7.p8#p) by noppa (No License)
* UFO Swamp Odyssey (https://www.lexaloffle.com/bbs/?pid=ufo-0.p8#p) by paranoidcactus (CC4-BY-NC-SA)

Revision as of 14:23, 30 December 2021

fake-08
File:Fake-08.jpg
General
Authorjtothebell
TypeComputer
Version0.0.2.13
LicenseMIT License
Last Updated2021/09/06
Links
Download
Website
Source

fake-08 is a homebrew PICO-8 emulator, the latest release is available for Nintendo 3DS, Nintendo Switch, Sony PS Vita, and Nintendo Wii U.

Originally created by Lexaloffle Software, PICO-8 is a virtual machine and game engine created by Lexaloffle Games. It is 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

Available in 3DSX and CIA formats.

  • CIA - Install the .cia with the CIA manager of your choice.
  • 3DSX - Use the .3dsx provided with the Homebrew Launcher.

Pico 8 cart files go in the p8carts directory of your SD card. Fake-08 supports .p8 text file carts and .p8.png image file carts.

User guide

You browse and download carts by using the SPLORE() function in Pico 8 (again, if you have $15 to spend, and you are interested in game dev, it is well worth your money). Once you have loaded a cart that you want to try on FAKE-08, type save Template:Cartname.p8 to save the cart as a text file, then copy that file to your device's SD card.

You can also browse carts on the Pico-8 BBS website, but can only download complete carts in png format. As of pre release v0.0.1.1 Fake-08 should load and play png carts provided they don't use any other unsupported features. You can download p8.png carts from the Cart link in the lower left of the game view, and save it into your p8carts directory.

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 list.

Controls

Left/Right - Nagigate carts 1 by 1

Up/Down - Navigate carts 10 by 10

A - Load selected cart

Start - Close selected cart

Select - Cycle screen sizes

L+R - Exit

Screenshots

fake083ds3.png fake083ds4.png

fake083ds5.png fake083ds6.png

Media

FAKE-08 (PICO-8) | 3DS, Vita, Switch & Wii U | Games Showcase (Stranno)

Compatibility

Performance is not great on Old 3DS systems. Some games may experience slowdowns on the faster consoles as well.

More optimizations are probably possible, but keep in mind that Pico 8 lists a raspberry pi 1 with a 700 MHz ARM11 professor as minimum spec, and the old 3DS's CPU is 268 MHz ARM11.

Many games should be playable regardless, and hopefully more optimizations can be made.

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 noticably inaccurrate. 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 noticable clipping/popping.

See issues page for more specifics.

Credits

  • Zep/Lexaloffle software for making pico 8. Buy a copy if you can. You won't regret it.
  • 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:

Changelog

v0.0.2.13

  • Add breadcrumb menu items for multi cart games. Games like Pico Arcade and the Christmas carts should work now as long as you provide all the sub carts as well (still no auto downloading).
  • Optimize shape drawing (rectfill, circfill, are much faster if there is no fill pattern).
  • Small optimization to sprite blitting (hopefully more to come here).

Release notes.

External links

Advertising: