Here's a list of programs that should or could be (re-)written to work with YAPC (or any nostalgic platform), including some I'm very fond of.
PC Gamer's article "The 50 most important PC games of all time" https://www.pcgamer.com/most-important-pc-games/ seems to be a good source but is seemmingly very biased towards IBM PC and compatibles.
There won't be many examples of 8-bit console games as I didn't own or use any.
All of these are 2D.
These were originally text based:
| Game | Year | URL |
|---|---|---|
| Star Trek | 1971 | https://en.wikipedia.org/wiki/Star_Trek_(1971_video_game) |
| Colossal Cave Adventure | 1976 | https://en.wikipedia.org/wiki/Colossal_Cave_Adventure |
| Zork | 1977 | https://en.wikipedia.org/wiki/Zork |
| Rogue | 1980 | https://en.wikipedia.org/wiki/Rogue_(video_game) |
These were originally text based, too, but had many graphical implementations:
| Game | Year | Author / Editor | URL |
|---|---|---|---|
| Snake | 1976 | (Blockade) | https://en.wikipedia.org/wiki/Snake_(video_game_genre) |
| Lunar Lander | 1979 | (Genre) | https://en.wikipedia.org/wiki/Lunar_Lander_(video_game_genre) |
| Tetris¹ | 1985 | Alexey Pajitnov | https://en.wikipedia.org/wiki/Tetris |
¹ I played a Turbo Pascal compiled version on PC compatibles in 1988 or 1989.
See https://en.wikipedia.org/wiki/Golden_age_of_arcade_video_games since most of theses are cited.
| Game | Year | Author / Editor | URL |
|---|---|---|---|
| Asteroids | 1979 | Atari | https://en.wikipedia.org/wiki/Asteroids_(video_game) |
| Battlezone | 1980 | Atari | https://en.wikipedia.org/wiki/Battlezone_(1980_video_game) |
| Tempest | 1981 | Atari | https://en.wikipedia.org/wiki/Tempest_(video_game) |
| Star Wars | 1983 | Atari | https://en.wikipedia.org/wiki/Star_Wars_(1983_video_game) |
NB: for home users, Vectrex console (1982/1983) from Milton Bradley seems to be the main and only source for vector games, cf. https://en.wikipedia.org/wiki/Vectrex.
| Game | Year | Author / Editor | URL | Display |
|---|---|---|---|---|
| Defender | 1981 | Williams Electronics | https://en.wikipedia.org/wiki/Defender_(1981_video_game) | 292x240 (16) |
| Scramble | 1981 | Konami | https://en.wikipedia.org/wiki/Scramble_(video_game) | 224x256 |
| Moon Patrol | 1982 | Irem | https://en.wikipedia.org/wiki/Moon_Patrol | 240x252 |
| Zaxxon | 1982 | Sega | https://en.wikipedia.org/wiki/Zaxxon | 256x224 |
| Gauntlet | 1985 | Atari Games | https://en.wikipedia.org/wiki/Gauntlet_(1985_video_game) | 336x240 |
| Out Run | 1986 | Sega | https://en.wikipedia.org/wiki/Out_Run | 320×224 |
| Game | Year | Author / Editor | Notes |
|---|---|---|---|
| Bomberman | 1983 | Hudson Soft | https://en.wikipedia.org/wiki/Bomberman |
| H.E.R.O. | 1984 | Activision | Atari 2600, First platform game? https://en.wikipedia.org/wiki/H.E.R.O._(video_game) |
| Sorcery | 1984 | Virgin Games | (no english page) https://fr.wikipedia.org/wiki/Sorcery_(jeu_vid%C3%A9o,_1984) |
| Ghosts 'n Goblins | 1985 | Capcom | https://en.wikipedia.org/wiki/Ghosts_%27n_Goblins |
| Bubble Bobble | 1986 | Taito | https://en.wikipedia.org/wiki/Bubble_Bobble |
| Solitaire | 1990 | Microsoft | https://en.wikipedia.org/wiki/Microsoft_Solitaire |
| Sokoban | - | - | https://en.wikipedia.org/wiki/Sokoban |
| Another World | 1991 | Éric Chahi / Delphine Software | https://en.wikipedia.org/wiki/Another_World_(video_game) |
Genre: https://en.wikipedia.org/wiki/Real-time_strategy
| Game | Year | Author / Editor | Notes |
|---|---|---|---|
| Dune | - | - | First modern RTS: https://en.wikipedia.org/wiki/Dune_(video_game) |
| Dune II | - | - | Real first modern RTS? https://en.wikipedia.org/wiki/Dune_II |
| Warcraft | 1994 | Blizzard Entertainment | https://en.wikipedia.org/wiki/Warcraft:_Orcs_%26_Humans |
All these series debuted on the Apple II and were ported to most platforms over the years.
| Game | Year | Editor | Machine | URL |
|---|---|---|---|---|
| Ultima | 1981-1999 | Several | Apple II & others | https://en.wikipedia.org/wiki/Ultima_(series) |
| Wizardry | 1981-2023 | Sir-Tech | Apple II & others | https://en.wikipedia.org/wiki/Wizardry |
| The Bard's Tale | 1985-2022 | Several | Apple II & others | https://en.wikipedia.org/wiki/The_Bard%27s_Tale |
| Might and Magic | 1986-2014 | Several | Apple II & others | https://en.wikipedia.org/wiki/Might_and_Magic |
| Game | Year | Editor | Machine | URL |
|---|---|---|---|---|
| Lode Runner | 1983 | Broderbund | Apple II | https://en.wikipedia.org/wiki/Lode_Runner |
| Boulder Dash¹ | 1984 | First Star Software | Atari 8-bit | https://en.wikipedia.org/wiki/Boulder_Dash_(video_game) |
| Prince of Persia | 1989 | Broderbund | Apple II | https://en.wikipedia.org/wiki/Prince_of_Persia_(1989_video_game) |
¹ I really thought Boulder Dash was originally released for the C64!
NB: these are not completely open sourced, Planet X3 Open Source Edition is GPL'd, but without assets, and theses sources are really tied to the MS-DOS and x86 platform.
| Game | URL |
|---|---|
| Planet X3 | https://github.com/planet-x3/px3_ose + |
| Attack of the PETSCII robots | https://github.com/search?q=Attack%20of%20the%20PETSCII%20robots&type=repositories |
December 2023: Planet X16 was released, see https://www.the8bitguy.com/35663/planet-x16-is-here/!
These ones were my most played ones on my CPC 664 (https://en.wikipedia.org/wiki/Amstrad_CPC#CPC_664):
| Game | Year | Author / Editor | URL |
|---|---|---|---|
| Fruity Frank | 1984 | Kuma Software | https://en.wikipedia.org/wiki/Fruity_Frank |
| Knight Lore | 1984¹ | Ultimate | https://en.wikipedia.org/wiki/Knight_Lore |
| Barbarian | 1987 | Palace Software | https://en.wikipedia.org/wiki/Barbarian:_The_Ultimate_Warrior |
¹ The first release was on the ZX Spectrum in 1984.
Others games I recall playing on the CPC:
| Game | Year | Author / Editor | URL |
|---|---|---|---|
| Alien 8 | 1985 | Ultimate | https://en.wikipedia.org/wiki/Alien_8 |
| Bruce Lee | 1985 | U.S. Gold | https://en.wikipedia.org/wiki/Bruce_Lee_(video_game) |
| Highway Encounter | 1985 | Vortex Software | https://en.wikipedia.org/wiki/Highway_Encounter |
| The Way of the Exploding Fist¹ | 1985 | Beam Software | https://en.wikipedia.org/wiki/The_Way_of_the_Exploding_Fist |
| Wizball² | 1987 | Sensible Software | https://en.wikipedia.org/wiki/Wizball |
- ¹ This is the first and only one I transfered from cassette to diskette with instructions from Hebdogiciel mag!
- ² Even if I recall it was way too hard for me ;-)
| Game | Year | Author / Editor | URL |
|---|---|---|---|
| Lemmings | 1991 | DMA Design, Amiga | https://en.wikipedia.org/wiki/Lemmings_(video_game) |
I played numerous hours with these ones on my 1040STF, my STE and my MegaSTE:
| Game | Year | Author / Editor | URL |
|---|---|---|---|
| Dungeon Master | 1987 | FTL Games | https://en.wikipedia.org/wiki/Dungeon_Master_(video_game) |
| Populous | 1989 | Bullfrog productions | https://en.wikipedia.org/wiki/Populous_(video_game) |
| Rick Dangerous | 1989 | Firebird Software | https://en.wikipedia.org/wiki/Rick_Dangerous¹ |
| Hero Quest | 1991 | Gremlin Interactive | https://en.wikipedia.org/wiki/HeroQuest_(video_game) |
| Space Crusade | 1992 | Gremlin Interactive | https://en.wikipedia.org/wiki/Space_Crusade_(video_game) |
- ¹ First version on the Amiga? unlicensed reverse engineered C version at https://github.com/zpqrtbnk/xrick (available as core in libretro/retroarch)
| Game | Year | Author / Editor | URL |
|---|---|---|---|
| Jazz Jackrabbit | 1994 | Epic Megagames | https://en.wikipedia.org/wiki/Jazz_Jackrabbit_(1994_video_game) |
| Duke Nukem | ? | ? | ? |
| Game | Year | Author / Editor | URL | Notes |
|---|---|---|---|---|
| Flappy bird | 2013 | Dong Nguyen | https://en.wikipedia.org/wiki/Flappy_Bird | Horizontal scrolling needed |
| 2048 | 2014 | Gabriele Cirulli | https://github.com/gabrielecirulli/2048 | Static background |
| Name | Year | Author | URL |
|---|---|---|---|
| Game of life | 1970 | John Conway | https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life |
| Mandelbrot set and others fractals | ? | ? | https://en.wikipedia.org/wiki/Mandelbrot_set |
| Name | Year | Author | URL |
|---|---|---|---|
| 3D spinning cube | https://rosettacode.org/wiki/Draw_a_rotating_cube | ||
| Amiga Boing Ball Demo | https://amiga.lychesis.net/applications/AmigaBoingBall.html | ||
| XScreenSaver | https://en.wikipedia.org/wiki/XScreenSaver | ||
| Matrix screensaver | https://en.wikipedia.org/wiki/Matrix_digital_rain¹ | ||
| Bad Apple!! | https://en.wikipedia.org/wiki/Bad_Apple!! | ||
| Nyan cat | https://en.wikipedia.org/wiki/Nyan_Cat² | ||
| Old School demo effects | https://en.wikipedia.org/wiki/Demo_effect | ||
| Pico effects | 2021 | Tuupola | https://github.com/tuupola/pico_effects |
¹ XScreenSaver includes MatrixGL ² cf. https://github.com/visrealm/pico-56/tree/main/episodes/ep01-vga/ep01-vga-05-nyancat
Goal is to play Amiga 4 channels stereo MODs at least, see:
I made some myself on my Atari and my PC, see https://modarchive.org/index.php?request=view_profile&query=90994.
- be it vi, nano or joe / Turbo Pascal (Wordstar) like
- full screen
- multiple files (buffers) at once?
- limit files to 64KB?
Like sh / dash / ash / bash / ...
- Would be simpler to implement if the console implemented ANSI / vt52 / vt100 compatibility
- POSIX like? (even BusyBox https://busybox.net/ seems to be too big)
- files masks / jokers?
|pipes?<,>and>>redirections?- scripts?
- history? (with file save)
- variables?
- environment variables?
- line editor capabilities ("à la readline#)?
<tab>completion?
Integrated commands:
| Command | Description |
|---|---|
help and help <command> |
General help and specific help for one command |
ls [-l][-1] <path> with dir [/w] alias |
List files, with DOS alias |
cat <file> with typealias |
Display file's content, with DOS alias |
cd <path> |
Change directory |
mkdir <dir> |
Make directory |
more <file> (or less <file>?) |
Display file's content paginated, with backwards ability with less |
cp <src> <dst> |
Copy file |
mv <src> <dst> with ren alias |
Move / rename file, with DOS alias |
rmdir <dir> |
Remove empty directory |
rm <file> |
Remove file |
clear with cls alias |
Clears the screen |
status |
System information: RAM, system clock, mounted file systems, version and compilation options, ... |
date and time |
Display or set date and time for the RP2040's RTC (and an optional battery backed up module) |
| ... |
Other commands from pshell https://github.com/lurk101/pshell (see below, too):
cc- compile C source fileformat- format the filesystemmount- mount filesystemquit- shutdown systemreboot- Restart systemstatus- filesystem statusunmount- unmount filesystemvi- editorxget- get file (xmodem)xput- put file (xmodem)
Another way to implement a shell would be to extend the functionality of the REPL of an interpreted language like Lua, see below.
| Name | Functionality |
|---|---|
| SoundTracker | MOD editor |
| Bitmap editor | DEGAS Elite / Deluxe Paint style |
| Sprite / Tileset editor | Look at Pico-8 editors? |
| Tilemap editor | Idem? |
These are intended to be run on YAPC itself, making it the intended self contained machine.
They all need an editor of some sort for source files and a similar way to edit command line.
Micropython https://micropython.org/download/RPI_PICO/ is the default language for Pico programming.
It already has a REPL that could be extended to use a physical console instead of UART and extensions to handle VGA, sound, keyboard and other stuff.
Main license is MIT, with additional ones for some directories & files, see https://github.com/micropython/micropython/blob/master/LICENSE.
Adafruit maintains Micropython's fork CircuitPython.
- Tiny BASIC https://en.wikipedia.org/wiki/Tiny_BASIC
- piccoloBASIC (https://github.com/garyexplains/piccoloBASIC)
- BBC BASIC (https://github.com/Memotech-Bill/PicoBB)
- Microsoft BASIC (https://en.wikipedia.org/wiki/Microsoft_BASIC)
- GFA BASIC (https://en.wikipedia.org/wiki/GFA_BASIC)
- MMBasic (https://mmbasic.com/) (not open source, see https://geoffg.net/OpenSource.html)
- or another one with no line numbers and structured programming (example?)
- References: https://www.lua.org/ / https://en.wikipedia.org/wiki/Lua_(programming_language)
- PT52-Lua https://gitlab.com/DarkElvenAngel/pt52-lua
Notes:
- Lua has variable arguments as
function myfunction(...), which should make a command interpreter easy within the REPL if we go this way:
dir
dir "/w", "*.txt"Another way would be to prefix commands with ! or |:
!ls -l *.txt
- Kaluma https://github.com/kaluma-project/kaluma, which is
- JerryScript https://github.com/jerryscript-project/jerryscript for the Pico
- UCSD Pascal / p-System https://en.wikipedia.org/wiki/UCSD_Pascal: OLD, uses a VM
- PascalScript https://github.com/CHiPs44/pascalscript: not even alpha!
- [TODO?]
- http://www.ulisp.com/ and https://github.com/technoblogy/ulisp-arm (Arduino .ino, not C or C++)
- [TODO?]
- https://en.wikipedia.org/wiki/Amsterdam_Compiler_Kit
- C, Pascal, Modula-2, Occam, and BASIC
- MINIX related
- FreeBASIC, https://github.com/freebasic
- Turbo Pascal 3 (or 5.5?) like, https://en.wikipedia.org/wiki/Category:Pascal_(programming_language)_compilers
- C https://github.com/lurk101/pshell, based on AMACC² https://github.com/jserv/amacc¹
- SCC (simple c99 compiler) http://git.simple-cc.org/scc/file/README.html
- TCC (Tiny C Compiler) , https://repo.or.cz/w/tinycc.git/
¹ See https://forums.raspberrypi.com/viewtopic.php?p=2036424&hilit=lurk101+pshell+amacc#p2036500
² AMACC stands for "Arguably Minimalist Arm C Compiler"