| A "fantasy [retro game] console" is an abstract machine (like the JVM is an abstract machine, or like the Flash runtime is an abstract machine, or like BASIC is an abstract machine) with two key properties: 1. it's compute-resource-constrained — so you can't just transpile DOOM into the "fantasy console's" native programming language / bytecode ISA and expect it to run well, but instead have to learn to program directly for the console's native programming language or ISA — close to the (abstract) metal — to do anything of note with it; 2. it exposes low-level "primitive" features in its native programming language / bytecode ISA, in the form of system calls or MMIO registers, to accelerate graphics/sound operations without consuming (abstract) CPU cycles; thus allowing games developed for the console to run well at 30/60FPS, despite the resource constraints. Where usually these calls are themselves constrained to only allow for "retro"-style output (e.g. allowing audio only in the form of a set number of square-wave frequency channels.) In other words, a "fantasy [retro game] console" attempts to achieve a similar set of "artistic constraints" for game development that you get from developing for a real retro game console, like the NES or Gameboy. Except that the artistic constraints imposed by fantasy consoles are usually not low-level technical constraints in the system's (theoretical) microarchitecture, but rather arbitrary policy-based constraints imposed by the abstract-machine standard on conforming implementations, and therefore are often less frustrating things to be worked around (think: memory bank switching), and instead are more inspiring constraints to be embraced to fuel the creative process when making a game (think: limited color palette per art asset.) Or you can think of it like this: what if the Super Nintendo never existed, but there still ended up being "SNES emulators" that all agreed on how they should interpret/run "SNES ROMs" — all implementations of a shared abstract-machine standard? Developers would then be producing "SNES games" not to run on a physical SNES, but instead solely so that you could then run them on a compatible emulator. Although, in theory, nothing would stop someone from making a real hardware SNES conforming to the abstract-machine standard — and then SNES ROMs would work on it as well. That's a "fantasy console." For a given fantasy console, there may or may not be any physical-hardware implementations; though usually there aren't. A well-known example of a "fantasy console" with only virtual implementations (i.e. emulators) is the PICO-8 (https://www.lexaloffle.com/pico-8.php). While there are hardware devices that present themselves "as" a PICO-8 "console", they do this by using some other ISA to run a full OS kernel, which then launches into a userland PICO-8 emulator. There is no hardware device whose CPU+BIOS enables it to natively execute PICO-8 code. (It's the difference between a NES Classic, and an actual NES.) Meanwhile, this thing — the uConsole — isn't a "fantasy console" itself, per se (i.e. they're using the term wrong), but rather a device focused on running multiple fantasy-console emulators, which therefore doesn't even attempt to present itself as being any particular "fantasy console's" hardware. It's basically just one of the many "retro handheld" devices out of Shenzhen recently (which often ship with fantasy-console emulators) — except this one's got a keyboard! :P A fun example of a more true hardware "fantasy console", where the hardware is itself an implementation of a particular fantasy-console abstract machine (and where the abstract-machine standard and the hardware implementation were co-developed to make this possible), is the https://www.commanderx16.com/ — which is both a fantasy-console in its full capabilities, but is also a backward-compatible superset of the abstract-machine model of a Commodore 64, and so compatible with Commodore 64 software/games (so this abstract-machine can also be thought of as an "enhanced" Commodore 64 — like how the Gameboy Color was an "enhanced" Gameboy — making "enhanced ports" of Commodore 64 games an especially easy/interesting project.) |
Although it runs Commodore BASIC (itself based on Microsoft BASIC as many machines were) it was never intended to be an "emulator" or compatible with the C64 or any other machine. It is its own machine, just as the ZX Spectrum, Atari 800, etc. were also distinct from the C64. [...] Ultimately C64 compatibility is not the aim of this product.
[1]: https://www.commanderx16.com/forum/index.php?/about-faq/