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.8 Requires: AmigaOS 2.0+/020+, 040/060 recommended Architecture: m68k-amigaos >= 2.0 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 the vast majority of PICO-8 cartridges (.p8 and .p8.png) - 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: all 8 PICO-8 waveforms (triangle, tilted-saw, saw, square, pulse, organ, noise, phaser) plus the buzz/noiz timbre variants, the note effects (slide, vibrato, drop, fade in/out, arpeggio) and custom instruments - Serial PCM streaming - serial(0x808) digitised audio for carts with sampled speech or music (Berzerk, Impossible Mission, Amstrad chip tunes) - 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 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 F5 - jump to a random cart * F6 - jump to the next cart * ESC - return to launcher * F5/F6 work only when started from the GUI launcher (they shuffle through the launcher's games-folder list). A short "now loading " splash shows which cart was picked (press ESC during it to drop back to the launcher instead). When you return to the launcher, the selection lands on the cart you were last playing - including one reached via F5/F6. Limitations: - Some newer PICO-8 API calls may not be implemented - Serial PCM (digitised) audio plays on a single Paula channel, so while a cart streams it the PCM comes out of one speaker (mono); the synth timbre is close to but not bit-exact with real PICO-8 - On chipset (planar) Workbench, launching multiple carts back-to-back in one Amico8 session may eventually freeze the Amiga (chip-RAM fragmentation across iterations). If this happens, restart Amico8. --- Tested games: Over 1100 tested PICO-8 cartridges at least load and run - every single one launches - and the large majority already play correctly. Release 0.8 adds a broad batch of compatibility fixes across the z8lua parser, number/string handling, P8SCII text controls, fill-pattern glyphs, configurable screen modes, the real date/time stats, and the rounded graphics primitives. --- 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, Tytus, Paluch - testing Quad, OlekW200i, Wozik, Mirq, Borsuk - moral support Jonathan (jtothebell) - FAKE-08 reference implementation --- Pawel "Juen" Nowak Contact: j@ki.je or via imp3!