3 ms·
There are a number of ways to accomplish this today. All have trade-offs, but generally, the main illusion-breaker is when they are user space programs that run
by incanus77 5y ago
There are a number of ways to accomplish this today. All have trade-offs, but generally, the main illusion-breaker is when they are user space programs that run on top of Linux, mostly on account of random console spew (which can be remedied) and boot-to-prompt time (which can be made to generally about <10 seconds, at best — DietPi and TinyCoreLinux are both useful here).
Incidentally, the RISC OS Pico[1] mentioned is out of date and won’t run on the Pi 400 or other newer Pi’s.
Aside from the excellent PC-BASIC[2] and BBC BASIC[3] mentioned, another in that vein is MatrixBrandy[4], a fork of Brandy BASIC[5]. PC-BASIC is excellent if, like me, you grew up on an IBM PCjr, since that is a very specific brand of GW-BASIC with better graphics & polyphonic sound. But, being Python, it’s relatively slow when doing things like POKEing the emulated graphics buffer and the like. MatrixBrandy is C-based and very fast, but has a number of BBC Micro-era quirks in the spirit of emulating those old systems.
Another fun route is emulators that have been ported to a Pi bare metal mode, such as a fork of the C64 emu VICE[6] called BMC64[7].
Lastly, there are some fun from-scratch fantasy consoles like PICO-8[8], TIC-80[9], and LIKO-12[10], all of which are based on SDL under the hood. To my knowledge, the only one with a bare metal version is TIC-80’s[11]. There is also Pixel Vision 8[12]. Generally, you code in Lua in these.
[1] https://web.archive.org/web/20181109020010/https://www.riscosopen.org/news/articles/2014/05/01/happy-birthday-basic https://web.archive.org/web/20181109020010/https://www.risco...
[2] http://robhagemans.github.io/pcbasic/ http://robhagemans.github.io/pcbasic/
[3] https://www.bbcbasic.co.uk/bbcbasic.html https://www.bbcbasic.co.uk/bbcbasic.html
[4] https://github.com/stardot/matrixbrandy https://github.com/stardot/matrixbrandy
[5] https://sourceforge.net/projects/brandy/ https://sourceforge.net/projects/brandy/
[6] https://vice-emu.sourceforge.io https://vice-emu.sourceforge.io
[7] https://accentual.com/bmc64/ https://accentual.com/bmc64/
[8] https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
[9] https://tic80.com https://tic80.com
[10] https://liko-12.github.io/ https://liko-12.github.io/
[11] https://github.com/nesbox/TIC-80/tree/master/build/baremetalpi https://github.com/nesbox/TIC-80/tree/master/build/baremetal...
[12] https://pixelvision8.github.io/Website/ https://pixelvision8.github.io/Website/