Short: PICO-8 fantasy console emulator Author: Pawel "Juen" Nowak (j@ki.je) Uploader: Pawel "Juen" Nowak (j ki je) Type: misc/emu Version: 0.5 Requires: AmigaOS 2.0+/020+, 040/060 recommended Architecture: m68k-amigaos Description: Amico8 is a PICO-8 fantasy console emulator for Amiga computers with a 68020 or better processor. It loads and runs PICO-8 cartridges in both text (.p8) and image (.p8.png) format directly from the Amiga file system. Features: - Runs many PICO-8 cartridges (.p8 and .p8.png) without modification - Full 128x128 pixel display, 2x scaled to 256x256 via Amiga copper tricks - 16-colour PICO-8 palette mapped to Amiga 12-bit hardware palette - Joystick (port 2) and keyboard input - Mouse support (port 1) for carts that use mouse API - Paula audio: triangle, sawtooth, square, pulse, organ, noise waveforms - AOT (Ahead-of-Time) native m68k code compiler for Lua numeric functions - Multi-cart support: load() chains between cartridges (e.g. POOM, The Mind) - BBS cart browser: browse and download cartridges from the Lexaloffle BBS directly from the Amiga (requires AmiSSL + bsdsocket.library) - GUI launcher: select a directory, browse cart list, launch from Workbench Two executables are provided: Amico8 - 68020/030 version, no FPU required. Runs on any Amiga with a 68020 or better. Amico8_040 - 68040/060 version, optimised instruction scheduling. Recommended for 040/060 systems. Recommended processor: 68060. Usage: Amico8 - start with GUI! (recommended) or from CLI: Amico8 CART= Amico8 ? (show all CLI options) Controls: Joystick port 2 / cursor keys / WASD - d-pad Z / C / N - button 1 (X) X / V / M - button 2 (O) P / Enter - pause / start ESC - return to launcher Limitations: - Some newer PICO-8 API calls may not be implemented - Sound effects and music play, but some advanced audio effects (vibrato, slide, arpeggio) are not yet fully implemented --- Tested games (selection): Working well: Celeste, Celeste Classic 2, Just One Boss, Combopool, Low Knight Undune, Blue Marble, Air Pico, POOM Tiny Sim, Crowded Dungeon Crawler Generally: roughly 2/3 of carts start, ~1/2 runs correctly. --- Code used: Lua 5.2 - scripting engine base Copyright (C) 1994-2015 Lua.org, PUC-Rio Authors: R. Ierusalimschy, L. H. de Figueiredo, W. Celes License: MIT (http://www.lua.org/license.html) The Lua VM and standard libraries form the core of the interpreter. z8lua - PICO-8-compatible Lua fork (from the Zepto-8 project) Copyright (C) 2016-2024 Sam Hocevar License: WTFPL (http://www.wtfpl.net/) Source: https://github.com/samhocevar/zepto8 z8lua extends Lua 5.2 with PICO-8-specific syntax (short-if, compound assignment operators, integer division, fix32 number type, PICO-8 math functions). The file z8lua/lpico8lib.c is taken directly from Zepto-8. p8_compress - PICO-8 cartridge decompression Copyright (C) 2014-2022 Lexaloffle Games LLP License: MIT Decompresses PICO-8 Lua source code from both old ":c:" format and modern "pxa" compressed format. stb_image - PNG image loader Author: Sean Barrett License: MIT / Public Domain Source: https://github.com/nothings/stb Used for loading .p8.png cartridge images. FAKE-08 - reference PICO-8 implementation Author: Jonathan (jtothebell) License: MIT Source: https://github.com/jtothebell/fake-08 Source code was invaluable for verifying PICO-8 behavior ? API semantics, iterator edge cases, metatable setup, _update_buttons contract, etc. ? against a known-working C++ reference. Not used in the Amico8 binary, only consulted during development. --- Thanks: Kempy/Veezya, MWB113 - testing Quad, OlekW200i, Wozik, Mirq, Borsuk - moral support Jonathan (jtothebell) - FAKE-08 reference implementation --- Pawel "Juen" Nowak Contact: j@ki.je or via imp3!