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
m (Text replacement - "Category:3DS homebrew emulators" to "")
 
(40 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox 3DS homebrew
{{Infobox 3DS Homebrews
| title = fake-08
|title=fake-08
| image = https://dlhb.gamebrew.org/3dshomebrew/fake-08.jpg|250px
|image=Fake083ds2.png
| type = Other Games
|description=A Pico 8 player for homebrew consoles.
| version = v0.0.2.10
|author=jtothebell
| licence = Mixed
|lastupdated=2023/03/11
| author = jtothebell
|type=Computer
| website = https://github.com/jtothebell/fake-08
|version=0.0.2.20
| download = https://dlhb.gamebrew.org/3dshomebrew/fake-08v0.0.2.10.7z
|license=MIT
| source = https://github.com/jtothebell/fake-08
|download=https://dlhb.gamebrew.org/3dshomebrews/fake083ds.7z
|website=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, [[FAKE-08 Switch|Nintendo Switch]], [[FAKE-08_Vita|Sony PS Vita]], and Nintendo Wii U.


= fake-08 =
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.


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==
===How to install===
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: ==
Create a folder named p8carts at the root of your SD card, and put the PICO-8 cart files in that folder.


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).
Fake-08 supports .p8 text file carts and .p8.png image file carts.


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.
===Carts===
You browse and download carts by using the <code>SPLORE()</code> function in Pico 8. Once you have loaded a cart that you want to try on FAKE-08, type save <code><nowiki>{{cartname}}.p8</nowiki></code> to save the cart as a text file, then copy that file to your device's SD card.


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


== Building: ==
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.


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.
See also [https://github.com/jtothebell/fake-08/wiki/Cart-Compatibility Fake-08 cart compatibility list].


Building outside of a pre-setup docker container will require a toolchain installation for the platform that you want to build.
Notable games that are now playable (v0.0.2.17): Poom and Terra (Doom and Terraria demakes), plus Jelpi works correctly again.


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.
==Controls==
Left/Right - Navigate carts 1 by 1


Building for the Vita requires Vita SDK (see https://vitasdk.org/) to be installed.
Up/Down - Navigate carts 10 by 10


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.
A - Load selected cart


Building tested on windows using devkitpro's msys2 and Ubuntu (WSL and standalone). Should work on other plaforms as well.
Start - Close selected cart


== Acknowledgements ==
Select - Cycle screen sizes


* 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
L+R - Exit
* Nintendo Homebrew Community
* 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
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/fake083ds7.png
https://dlhb.gamebrew.org/3dshomebrews/fake083ds8.png


== Known Issues: ==
https://dlhb.gamebrew.org/3dshomebrews/fake083ds9.png
https://dlhb.gamebrew.org/3dshomebrews/fake083ds10.png


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.
<code>Games using flip()</code> (like tweetcarts) have intermittent problems exiting back to the menu, and may crash the console. Use with caution.


See [https://github.com/jtothebell/fake-08/issues Issues] page for more specifics
Sound emulation is not perfect, and the noise implementation is noticably inaccurrate. Most of the sound implementation was ported over from Zepto 8, with the exception of the Noise instrument which was ported from PicoLove (some games have noticable clipping/popping and is not 100% accurate).


== Carts ==
See [https://github.com/jtothebell/fake-08/issues issues page] for more specifics.


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 <code>save {{cartname}}.p8</code> to save the cart as a text file, then copy that file to your device's SD card.
==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).


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.
'''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).


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


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.
'''v0.0.2.17'''


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.
Bug Fixes:
* Improve image quality of non-integer scaled images by using wide mode.
* Fix loading multi cart games.


== Postcard Image From Vita Sprite Credits: ==
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).


* Rabu Rabu Monster (https://www.lexaloffle.com/bbs/?pid=13897#p) by pedroavelar (No License)
'''v0.0.2.16'''
* Rainy Day Friends (https://www.lexaloffle.com/bbs/?pid=16886#p) by electricgryphon (CC4-BY-NC-SA License)
 
* chrysopoeia (https://www.lexaloffle.com/bbs/?pid=44647#p) by benjamin_soule (No License)
Bug Fixes:
* warehouse panic (https://www.lexaloffle.com/bbs/?pid=46990#p) by benjamin_soule (No License)
* Stub out stat values 120-122 (fix some crashing carts).
* Barp the Balldragon (https://www.lexaloffle.com/bbs/?pid=54395#p) by Saffith (CC4-BY-NC-SA)
* Fix setting map width to 256 (0).
* Celeste Classic 2 (https://www.lexaloffle.com/bbs/?pid=celeste_classic_2-5#p) by noel (CC4-BY-NC-SA)
* Fix cartdata return value (credit to @DPS2004).
* Solais (https://www.lexaloffle.com/bbs/?pid=d16solais-0#p) by DragonXVI (CC4-BY-NC-SA)
* music pattern playback with a non-standard length (credit @DPS2004).
* 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)
Improvements:
* Islander (https://www.lexaloffle.com/bbs/?pid=islander-4.p8#p) by CarsonK (No License)
* Fix local references of pico 8 api methods (possible small performance boost).
* Little Necromancer (https://www.lexaloffle.com/bbs/?pid=littlenecromancer-4.p8#p) by Fred_Osterero (CC4-BY-NC-SA)
* Add support for optional peek and poke arguments.
* Villager (https://www.lexaloffle.com/bbs/?pid=nano_villager-0.p8#p) by partnano (CC4-BY-NC-SA)
* Add support for most P8SCII control codes (no audio or decoration characters yet).
* Pico Driller (https://www.lexaloffle.com/bbs/?pid=picodriller-0.p8#p) by johanp (No License)
* Add support for menu item value changes (credit @DPS2004).
* 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)
[https://github.com/jtothebell/fake-08/releases Release notes.]
* 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)
==Credits==
* Shelled Shinobi (https://www.lexaloffle.com/bbs/?pid=shelledshinobi1-7.p8#p) by noppa (No License)
* [https://www.lexaloffle.com/pico-8.php Zep/Lexaloffle software] for making pico 8.
* UFO Swamp Odyssey (https://www.lexaloffle.com/bbs/?pid=ufo-0.p8#p) by paranoidcactus (CC4-BY-NC-SA)
* 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.
 
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).
 
==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

Latest revision as of 06:01, 6 Mayıs 2024

fake-08
Fake083ds2.png
General
Authorjtothebell
TypeComputer
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, Nintendo Switch, Sony PS Vita, and Nintendo Wii U.

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

How to install

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.

Create a folder named p8carts at the root of your SD card, and put the PICO-8 cart files in that folder.

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

Carts

You browse and download carts by using the SPLORE() function in Pico 8. Once you have loaded a cart that you want to try on FAKE-08, type save {{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.

Notable games that are now playable (v0.0.2.17): Poom and Terra (Doom and Terraria demakes), plus Jelpi works correctly again.

Controls

Left/Right - Navigate 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

fake083ds7.png fake083ds8.png

fake083ds9.png fake083ds10.png

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 the sound implementation was ported over from Zepto 8, with the exception of the Noise instrument which was ported from PicoLove (some games have noticable clipping/popping and is not 100% accurate).

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:

External links

Advertising: