
Flappy Bird Ported to C64 - ForHackernews
http://sos.gd/flappy64/
======
ck2
I am starting to understand the "because we can" mentality.

If my estimations are right, we should see a CSS-only version that doesn't use
any javascript next month.

ps. in case someone needs css-only ideas
[http://liveweave.com/wC3DB2](http://liveweave.com/wC3DB2)

~~~
onion2k
I made an JS+canvas version the other day
[http://codepen.io/onion2k/pen/ifroz](http://codepen.io/onion2k/pen/ifroz) …so
I could do one that fits in a 'favicon'…
[http://ooer.com/flappicon/](http://ooer.com/flappicon/)

(probably only works in Chrome)

~~~
evan_
That's great, you should enter that in JS1k:
[http://js1k.com/2014-dragons/demos](http://js1k.com/2014-dragons/demos)

------
stevoski
Dammit, the C64 always gets the good games first. I hope they make a port for
my Amstrad CPC.

~~~
mattl
Don't worry, Ocean is working on a crappy Speccy port right now.

~~~
Syssiphus
This made my day :D

~~~
mattl
You may like this: [http://mattl.us/aa/](http://mattl.us/aa/)

~~~
mands
So many memories! I'm just wondering when that copy of Street Fighter 2 is
coming out :)

~~~
Doctor_Fegg
A friend of mine back then was actually in touch with US Gold about coding it
(and he was one of the few people who'd have been capable of it). But they
suddenly changed their mind and said "no, we're not doing it".

(And yes, I am the Doctor Fegg who wrote
[http://mattl.us/aa/AmstradAction082-0010.html](http://mattl.us/aa/AmstradAction082-0010.html)
...)

~~~
mattl
You were working on an SF2 clone with.. Rob something? The guy who made
Fluff... right? Lethal Moves or something? (sorry 19 years ago)

~~~
Doctor_Fegg
Rob Buckley, Radical Software. I was going to be doing the music. But there
wasn't really any point doing even homebrew CPC development after AA folded -
no-one to sell it to.
[http://www.cpcwiki.eu/index.php/Lethal_Moves](http://www.cpcwiki.eu/index.php/Lethal_Moves)

~~~
mattl
Hey, not bad for 19 years of memory!

Do you know if Rob ever released any of those unfinished things?

It looks like some work has been done recently on a port of SF2 to CPC -- I
must admit, it's been a decade since I had a working CPC... I would like to
get one, but maybe emulating things is best at this point.

------
loser777
I'm saddened that there's no kickass SID soundtrack for the game. That would
have been a great way to show off the C64's technical advantages over the
iPhone ;)

------
wozname
Obligatory zx81 version, video: [http://www.frequency.com/video/just-released-
for-zx81-is-qua...](http://www.frequency.com/video/just-released-for-zx81-is-
quack/148749786/) The official homepage: [http://www.bobs-
stuff.co.uk/quack.html](http://www.bobs-stuff.co.uk/quack.html)

This C64 version is pretty awesome though!

------
bliti
I think it makes more more sense as a C64 game than anything else. It just
fits the era and machine so well. Made me think back to the good old days
where I would spend all day playing games on my C64.

~~~
vidarh
The earliest game I remember where at least one of the levels used the same
game logic was Dragonsden from 1983.... But there were at least one more that
I can't remember the name of...

------
the_sos
Hi! I made this! Thanks for mentioning it here! Let me know if you have any
questions!

~~~
BHSPitMonkey
Is the source code available somewhere?

~~~
the_sos
Well, it was written in assembly anyways, so you can decompile it, but there
are many macros I used, so it might be hard to read (for example scrolling is
done without a loop, just 1000 separate instructions). There's so much
spaghetti in there. I'll probably release that once I have some time to clean
up a bit!

~~~
Luc
Could you tell us which tools you use? Which assembler, emulator, etc.?

~~~
the_sos
I used 64tass (probably the most usable thing out there), Char Pad, Sprite
Pad, Exomizer and Vice :)

~~~
Luc
Thank you!

------
jggonz
Beautiful work. In only 64K of RAM and probably more fun than the phone
version! :) Makes me so envious of people that actually have a working C64 to
try this on!

~~~
cgh
Actually only ~38K of RAM plus the 4K section starting at address 49152.

~~~
diydsp
Lest people get the impression the C64 does not have 64K of RAM, I am here to
assert that it does in fact have a full 64K of RAM.

~~~
cgh
Technically yes, but the system mapped the ROM into the RAM and so only 38,911
bytes were available to the user. There were various tricks game makers used
to get at the mapped, normally off-limits RAM however.

~~~
Luc
Nothing tricky about it, just flip some bits at address $01. No sense keeping
BASIC or the kernal around if you're not using it.

LDA $01

AND #$F8

STA $01

~~~
cgh
Thank you for that. I never actually learned how to do this as my own games,
written as a kid, were way too small.

~~~
Luc
These days it is so much easier to have access to all kinds of technical
information on the C64. I remember travelling half a day to the single
bookshop that sold assembler books. Learning anything beyond those books was
mostly a matter of figuring out other people's code (e.g. the 'sprites in the
border' hack).

------
joeblau
I want to see the source code for this. I opened sourced my iOS remake[1] but
I would love to see what this code looks like.

[1] -
[https://github.com/joeblau/FlappyBlock](https://github.com/joeblau/FlappyBlock)

~~~
eru
It's probably mostly written in assembly. (Or Forth, if you are extra lucky.)

------
mappum
The creator of this is Sos, the developer of the game "McPixel". He is well
known in the Ludum Dare community.

------
seba_dos1
Kinda similar in its spirit - here's my curses based adaptation for any
vt100-compatible terminal:
[https://github.com/dos1/flasciibird](https://github.com/dos1/flasciibird)

~~~
diydsp
Delicious, runs great under cygwin.

------
zephyrfalcon
Here's a video of another version (although I'm not sure if it's available for
download (yet)):

Happy Flappy ~ [http://vimeo.com/87434521](http://vimeo.com/87434521)

------
nkuttler
I still boot into x64 from time to time to play old games. Games that are much
more playable than flappy bird. Sometimes I also like to listen to sid music
while working.

------
syntaxfree
This is... beautiful.

( the past inside the present:
[https://www.youtube.com/watch?v=F7bKe_Zgk4o](https://www.youtube.com/watch?v=F7bKe_Zgk4o)
)

------
feelstupid
Using 'ported' assumes that you gained access to the original source code for
Flappy Bird, rather than just recreating Flappy Bird on C64.

~~~
robert_tweed
Not necessarily. The word just means [trans]port to another platform. It's
only relatively recently that writing automatically portable code has been
possible, and even then there's usually some modification involved, otherwise
we'd just call it "recompiling".

It has been used this way in relation to games for years. Game ports of the
80s and 90s very often involved complete rewrites from the arcade version,
sometimes without access to even the original graphics.

~~~
vidarh
I remember reading accounts of ports where the porters were not even given a
spec of any sort, but were lent an arcade cabinet of the original and had to
essentially test there way through everything to figure out what to implement.

------
ThomPete
ZX81 version
[https://lh5.googleusercontent.com/-0disyFsqTyE/Uv_yxfBfPsI/A...](https://lh5.googleusercontent.com/-0disyFsqTyE/Uv_yxfBfPsI/AAAAAAAAQo0/KNVMhAwj8A4/w640-h480-no/15235810uN5FacTH.gif)

------
Joeman
My C64 is a bit rusty. But shouldn't that load command end with ",8,1"?

~~~
evandeaubl
I'm probably equally rusty, but I believe ",8,1" loaded programs written in
machine language, and ",8" was for BASIC programs (at least that's what I
recall doing). So it looks like the port was written in BASIC.

~~~
fogleman
Looks like you might be right...

,0 The program will be loaded to the start of BASIC memory (2049/$0801)

,1 The program will be loaded absolute, i.e. to its stored location defined by
the first two bytes in the binary file. Needed for machine language programs.

[http://www.c64-wiki.com/index.php/LOAD](http://www.c64-wiki.com/index.php/LOAD)

~~~
nkuttler
With the ,1 you could do fancy stuff like loading your program and executing
it with one command. No need for another run command.

------
DigitalSea
Can't wait to see someone ironically port this over to SNES.

------
jameshk
What is with this Flappy Bird obsession? I stayed away from it.

Although a beginner could have some fun coding a clone.

~~~
erickhill
Probably something to do with the fact that the game was (allegedly) pulling
in ~$50k/day at the top of the charts in iTunes with very little focus on
monetization.

That was combined with an exceedingly simply UX anyone could understand.

And then the developer, to many people's shock, decided to pull the game. He
said he didn't want the attention.

Like all popular games - especially the simple ones - there have indeed been a
ton of clones pouring into the store.

------
donniezazen
Is Flappy Bird really so much fun? I quickly lost interest after losing a few
times.

~~~
supercoder
That's why people write implementations of it instead of playing it.

------
dysoco
Sos awesome as always! Keep on going.

------
scragg
Can we stop voting up the flappy bird stuff.

~~~
null_ptr
Yes, more JS MVC stuff please, if a link doesn't have at least 2 of "web",
"framework", or "node" in the title it's unfit for consumption.

------
JTenerife
Oh my ... hackernews, where are you going to?

