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: 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:
* cart label thumbnail at 2x scale (256x256) on the right
* disk cache (.a8 sidecar files) ? 10x faster repeat browsing
* native GadTools selection highlight; click=select, click again=play
* Filter:(N/M) box - case-insensitive substring search w/ live counter
* Recent carts list (top 5, prefix '*') across the top of the listview
* Cart Title / Author panel parsed from .p8 source
* Up/Down arrows move selection (with auto-scroll) - Enter launches
* Q closes the 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=<cartridge.p8.png>
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 <name>" 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
- Sound effects and music play, but some advanced audio effects
(vibrato, slide, arpeggio) are not yet fully implemented
- 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 (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: this version should run the vast majority of carts.
---
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 <sam@hocevar.net>
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!
|