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 type alias |
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"