Back in 2014 [Johan] decided to celebrate BASIC’s 30 50 year anniversary by writing his own BASIC interpreter. Now, a few years later, he says he feels he has hit a certain milestone: he can play Flappy Bird, written in his own version of BASIC, running on his own home-built computer, the BASIC-1.
Inside the BASIC-1 is an Atmel XMega128A4, a keyboard from a broken Commodore 64, a joystick port, a serial to TV out adapter, and an SD card adapter for program storage. An attractively laser-cut enclosure with kerf bends houses the keyboard and hardware. The BASIC-1 boots into BASIC just like many of its home computer counterparts from the 80s.
There has been work done to create minimal BASIC computers before but it’s not every day that someone decides to write their own BASIC interpreter. Nor is it every day someone wires their own homebrew computer into an attractive wood panel enclosure. Both at once is great to see, but crowning it off by having it run a Flappy Bird clone written in BASIC on an amber screen is really something special.
For ages we’ve had two proofs of hacking proficiency — Hello World proves you can do the most basic with a system, and running Doom proves you have mastered hardware abstraction on a system. Over the past few years Flappy Bird has grown to fill a niche between the two on systems that don’t have the horsepower (or resolution) to run Doom but still beg for a skill indicator.
This is a project for someone who has nothing else to do!
Why don’t take a C64 and optimize that, saves 2years development…..?
Why are you on this website?
+1
+1
+1
+1
+1
+1
+1
Plus wonton soup
Pretend this is all in all-caps to bypass moderation
+2
+1
+1
+1
+1
I’m doing my part.
Hackaday needs to impliment a comments up/down voting system :)
+1
Maybe he takes the CIA leak seriously and is the only guy on the planet that can use a computer without state sponsored malware.
+1
I’m sure the CIA is working hard at putting malware on his computer as we speak. (Look out for plumbers. :)
Do you trust that $2 chinese AVR programmer you got from Aliexpress? Why is it so slow? Why does it have readout protection? And why does its envelope say “Missent to USA”?
(Don’t laugh, it once happened to me and it took three months to arrive. But hopefully it wasn’t a programmer.)
Truer words were never spoken.
…Captain Obvious now says port Doom over to it. In BASIC.
I miss Joust, that is a fun game.
RIP my old Win95 computer.
You mean this one?
http://store.steampowered.com/agecheck/app/469820/
Oh haha, very funny [Cyk], but that’s not the one I mean.
The player uses a button and joystick to control a knight riding a flying ostrich.
https://en.wikipedia.org/wiki/Joust_(video_game)#Gameplay
I was terrible at it.
https://www.youtube.com/watch?v=jJVcj0qgWTE
Get it on MAME
http://mamedev.org/
Surely that’s the 50th anniversary? But then it’s easier just to take stuff straight from his website? ;-)
Yes. Wikipedia says that BASIC was created in 1964.
Whoops! What an embarrassing goof up, thanks for spotting that.
Sorry, my bad. I changed the blog as well.
Isn’t Doom a higher bar than Flappy Bird?
Never mind, I finished the story.
Flappy bird is just a version of ‘lunar lander’ (AKA moon lander) with poorer physics really.
I think I prefer that original concept (from the 70’s I understand) over flappy bird.
Lunar lander, benter known to me as “create a crater”.
I remember playing Lunar Lander in the ’70s on a Tektronix CAD station at the Indianapolis Field Office where my father worked. Many other games such as Artillery and Star Trek.
There you go, it already established itself as a thing that can run on everything almost half a century before flappy bird.
You do at least get the source code for Doom :)
“someone decides to write their own BASIC interpreter”
*cough* Does Jörg and his 11 years old AVR based BASIC computer count?
http://www.jcwolfram.de/projekte/avr/chipbasic32/main.php
+1
Love his AVR “ZX” stuff too!
Used to be a standard part of programing class right? Coding a BASIC interpreter.
So that means it was done a million times.
“someone decides to write their own BASIC interpreter” – heh, I’m doing just that, for running it on my FPGA-based CPU.
Very nice work.
I have designed a computer and a BASIC interpreter. The project is named PV16SOG and is using a PIC24EP512MC202
demo video: https://www.youtube.com/watch?v=DA9ojDc_Kic
source: https://github.com/Picatout/pv16sog
website with complete documentation including BASIC manual: http://picatout.github.io/pv16sog/
blog: http://picatout-jd.blogspot.ca/2016/04/projet-pv16sog.html
With all that information anyone can replicate it at low cost.
Impressive and well done. How easy it is to port to different PIC if Microchip drops your current one?
Switching to another PIC24 or PIC33 would be easy but I would not try to port it to an 8 bit PIC. 16 bits PIC don’t cost more than PIC18 so I don’t use PIC18. As the code is mostly in C except for the virtual machine which is a 2 stacks FORTH like coded in assembly. Porting it to PIC32MX170F256B would be more work but not that much.
“An attractively laser-cut enclosure”
I’m sorry, but I have never seen a laser-cut enclosure that is attractive. They’re all designed by engineers, not by designers.
Please prove me wrong, so that I finally have an excuse to buy a lasercutter :)
pong>flappy bird>doom>crysis
left out one… pong>tetris>flappy bird>doom>crysis
Take a look at a Flappy Bird-style game on a 34-year-old Compukit UK101: https://www.youtube.com/watch?v=h6BpQE7_vSk&t=1s
How about it’s fun to build your own computer.
See it run software.
Not some image off the net you downloaded and stuck into an rpi.
Some of us still thinks this is fun and rewarding.
But it’s even more fun to hack some old stuff to make it do something else. I still have my old Gameboy and I use it for simple text-only web browsing (with a DIY 32k flashcart and an ESP8266 connected to the multiplayer port through SPI). It also supports some javascript (hint: the ESP8266 runs Espruino).
I’m going to share the project in the future. Does anyone want an ESP8266 text-only browser?
Nah, not really. But it’s great you got it to work.
Heck yeah! And looking forwards to the bodge-ish-togetherness that is old nintendo and new wifi! XD
I did something like this with the 32bit z80 and a couple obscure RISC PICs except it was CP/M instead of a game.
I’ve coded at least 20 BASIC interpreters and cross-compilers over the years, most of them for practical work in embedded land. It’s an easy language to implement, safer and easier to use than C and not as cryptic as Forth, and one of the few that can pack a complete development environment in 8K (or even 4K if you’re sufficiently ruthless).