# Fantasy console

Une fantasy console (signifiant en anglais console imaginaire), ou fantasy computer (signifiant en anglais ordinateur imaginaire), sont des moteurs de jeux sous forme de machines virtuelles simulant des consoles aux capacités volontairement limitées. Ces limitations sont généralement inspirées des ordinateurs et consoles 8 bits : Pixel art avec une résolution volontairement basse, son et musique limités chiptune. Elle s'inscrit ainsi dans la démarche du retrogaming.
Il existe un game jam autour de ces machines virtuelles appelé Fantasy Console Game Jam

## Description

Ces fantasy consoles ou computer, sont généralement multi-plateformes (GNU/Linux, macOS, Windows, Android, etc. et fonctionnent également en HTML5 dans un navigateur). Elles intègrent également tous les outils pour le développement d'applications au sein de la machine virtuelle.
Les applications, ou jeux, sont distribuées à la manière des cartouches des consoles, sous forme de fichier que l'on peut importer ou exporter, et il est possible de les modifier. L'éditeur étant intégré à la console, il est possible d'arrêter à n'importe quel moment le jeu (ou application) et d'en étudier et modifier les différents éléments.
Il est possible de créer ses propres jeux.

## Historique

La première machine virtuelle dédiée aux jeux est CHIP-8, développé par Joseph Weisbecker (en) en 1978, le but était d'aider au développement de jeux vidéos sur des ordinateurs 8 bits de cette époque, tels que le COSMAC VIP (en), le Telmac 1800 (en) ou le DREAM 6800.
Le 24 décembre 2011, sort la version 1.0 de IBNIZ (pour anglais : Ideally Bare Numeric Impression giZmo), une machine virtuelle audio-video permettant de développer des effets audio-visuels de manière extrêmement compacte$^,$$^,$ On retrouve cette utilisation dans la scène demo des fantasy consoles telle que Pico-8, TIC-80, ou MicroW8.
La première fantasy console est probablement Pico-8, sorti en décembre 2014 et développé par un des auteurs de Voxatron, Joseph White (aka zep) de la société de jeux vidéo Lexaloffle$^,$ En mai 2016 le projet PocketCHIP a adapté la Pico-8 en console matérielle$^,$$^,$$^,$.
La fantasy console Bitsy ouvre un game Jam limité à cette console intitulé Bitsy Jam en avril 2017. Les thèmes sont pour la 3e, fin juin à début juillet 2017, 'Daydream'.
La première Game jam orienté autour des fantasy consoles en général est la Fantasy Console Game Jam qui s'est déroulée du 1er au 15 juillet 2017. Une seconde est organisée du 22 octobre au 5 novembre 2017
Du 5 novembre au 2 novembre 2017, le premier « FC dev jam » est quant à lui est un concours de développement consacré à la création de nouvelles fantasy console. Le thème choisi par les participants est « 1-bit display ».

## Quelques fantasy consoles

| Nom | Plateforme | Langage de programmation | Affichage | Audio | memoire | Stockage | Licence | Notes |
| Bitsy | HTML5 | aucun, via interface graphique | 128x128 (16x16 cell. 8x8 pix) 2 couleurs pour le fond +1 couleur pour les sprites | non (sauf modification du javascript) | ? | ? | libre | . |
| LIKO-12 | LÖVE (multi-plateforme) | Lua | 192x128 4-Bit Carte 144x128 Cells. | ? | 2x 25 Mio | ? | libre | Inspiré de Pico-8 |
| LowRes NX | Multi-plateforme | BASIC structuré de seconde génération | 160x128@60Hz 8 palettes 6 bits dynamiques, 4 coul./palette | ? | 32 Ko | ? | libre (Zlib) | RetroArch+ Android, Windows, Linux, macOS (x64/ARM), 3DS, GameCube, Wii, WiiU, Switch (libnx), PlayStation2, PSP, PS Vita$^,$ |
| MicroW8 | HTML5 Linux macOS Windows | WASM | 320x240, 256 colors, 60Hz | Modules: Up to 256KB (WASM) | 256KB | ? | libre (domaine public) | . |
| Minicube64 | multi-plateforme | Assembleur 6502 | 64x64 pixel framebuffer, 64 couleurs | ? basé sur SOKOL | 64K RAM | ? | ? | .Conçue pour apporter un environnement similaire au Comodore64 |
| Pico-8 | HTML5 Linux macOS Windows | Lua | 128x128 16 coul. 128 8x8 sprites Carte 128x32 cells | 4 channel chip blerps | 32 Kio | ? | Propriétaire | Première machine virtuelle nommée Fantasy Console. |
| Pixel Vision 8 ou PV8 | Linux macOS Windows | Lua, C sharp | ? | ? | ? | ? | libre | . |
| PX8 | multi-plateforme | Python Lua | 128x128 pix carte 128x32 cells | ? | ? | ? | Libre | supporte cartouches Pico-8. Écrit en Rust. Possible de programmer en Rust en utilisant comme bibliothèque, mais pas dans cartouches. |
| Riko4 | multi-plateforme (Linux Windows) | Lua | ? 16 coul. ? spr. ? cells | 5 canaux | ? | ? | Libre (Licence MIT) | Utilise SDL-GPU pour la partie video. |
| Tako 80 | HTML5 | JavaScript | 160x144, 256 col (0 transparent) | gère fichiers WAV/MP3 | ? | ? | Libre (Licence MIT) | Inspiré par Pico-80, basé sur Node.js |
| TIC-80 | Android HTML5 Linux macOS Windows Raspberry Pi Nintendo DS | Lua JavaScript MoonScript Fennel microPython Wren | 240x136, 16 coul. (+overlay 240x136, 16 coul.)+scanline 256 8x8 sprites 16 couleurs (ou 16x8 4 couleurs, ou 32x8 1 couleur) 256 8x8 bg tiles(ou 16x8 4 couleurs, ou 32x8 1 couleur) 240x136 cells | 4 canaux, forme d'onde configurable | 64 Kio de code + mémoire graphique/audio | .tic ou dans une image .png | libre (Licence MIT) | Utilise SDL2 |
| Uxn | multi-plateforme | uxntal (assembleur spécifique à UXN) | 4 couleurs | ? | 64 ko de RAM | Libre, similaire MIT | Utilise SDL2 |
| VectorBoy | Unity (Windows Wine probablement portable) | ? | Fil de fer vectoriel | ? | ? | ? | libre mais moteur propriétaire Unity | Simule une console de jeu portable (représentée en 3D à l'écran) comportant des jeux vectoriels en fil de fer |
| Voxatron | multi-plateforme | ? | voxels 3D | ? | ? | ? | propriétaire | Par les auteurs de Pico-8 ; |
| WASM-4 | WASM | multi-langues tant qu'ils ont un compilateur WASM | 160x160 pixels, 4 couleurs (RGB8), 60 Hz | 2 canaux pulse wave, 1 canal triangle, 1 canal bruit | 64 Ko | 64 Ko +1024 octets de sauvegarde de données utilisateur | libre (identique MIT) | |
| Zany80 | Linux Windows | assembleur Z80 langage C | ? | ? | ? | ? | Libre (licence Apache 2.0) | Cette console à la particularité d'être conçu autour de l'architecture du microprocesseur 8 bits Zilog Z80. |