Hacker News new | comments | ask | show | jobs | submit login
Flappy Bird Clone Code Injected into Super Mario World for SNES by Hand (youtube.com)
566 points by CameronBanga on May 25, 2016 | hide | past | web | favorite | 71 comments

The idea that someone hand-input 331 bytes of code by this manual method reminds me of a quote by Joey Hess on https://joeyh.name/blog/entry/ouch__33__/ , regarding the development of an RSA implementation in Perl that two people got as a tattoo: "I remember sending that in, but until today I hadn't realised that my keystrokes had actually translated into needle sticks for two people, Youch!"

As the video mentions, the person who developed the 331-byte Flappy Bird implementation specifically optimized it for code size, to make it easier to enter by hand.

It looks like it's not compromising functionality by the optimisations though. I really like how the swimming physics and animations are used to replicate the Bird's movements and mechanics.

That is also for the sake of optimzations though. It reuses swimming physics and animations because it makes code shorter

It's more like "Flappy Mario", but I guess inputting the appropriate pixels for the bird sprite would take long... the pipes, however, are perfect.

Still, it's amazing. Ridiculously impractical like those who build ship models in bottles, but awesome nonetheless. Hopefully it'll also be inspirational starting-off point for those wanting to learn more about how computers work. I know many who started down the road to CS with this sort of "game hacking".

Relatedly, I also know of an instructor who does something somewhat similar for the first class of his "intro to computing" course: he takes out a little 8-bit computer mounted on a breadboard with a few LEDs and pushbuttons, and enters a few dozen machine instructions bit-by-bit, writing a short program that causes the LEDs to flash in various patterns selected by the buttons. As part of that demo, he also writes and runs a "Hello World" binary in Windows Notepad --- entering each byte as ASCII characters. He says it's these sorts of "unusual" demos that can most effectively get students' attention, and I agree.

He takes out a little 8-bit computer mounted on a breadboard with a few LEDs and pushbuttons, and enters a few dozen machine instructions bit-by-bit.

Mainframe computers and minicomputers once had lots of blinking lights and buttons, so you could do that sort of thing. It was the only way to debug low-level code. It was not fun.

Something being fun (or just being really tedious work) depends on context - especially on motivation for doing it. So yes, flipping bits manually can be fun.

> the pipes, however, are perfect

You probably know this, but thats because the Flappy Bird pipes lifted Mario's pipe sprite entirely!

Fine, "heavily inspired by".

Using the direct sprite data would have been a massive IP violation

Drawing something similar can surely have people questioning it, but it might be sufficiently different to (try to) avoid bigger complaints.

Not massive at all. The pipes are not a substantial creative artifact in their own right.

An IP violation would require causing brand confusion or drawing sales away from the original

You're thinking of trademark, which would require confusion.

Copyright is another type of IP, and does not require confusion. It only requires copied content.

I don't think the creator of flappy bird gave a damn about IP violations.

maybe from a different Mario game?

Looks a lot like Mario Advance 3.

Super Mario Advance 3 was a port of Yoshi's Island. Yoshi's Island pipes for reference:


Not anywhere close.

Actually I was thinking of Super Mario Advance 4, which is the port of Super Mario Bros. 3, thus the mistake on my part.

Many eighties games used similar style for 3d-shapes.

He also did this: https://www.youtube.com/watch?v=qv6UVOQ0F44 (Also really impressive, I think this guy is a genius.)

This is cool, though (due to overfitting) it's really just "memorizing" the first level rather than learning how to play in general. It'd be interesting to see the same technique with separate test and training data sets.

The overfitting problem is addressed in the followup: https://www.youtube.com/watch?v=iakFfOmanJU

I wonder if there is a way it could learn to get over that tall pipe in this one. It might be sufficient for it to learn to deliberately attack any enemies it finds, combined with its tendency to move right all the time. But I suppose that might be too complex a set of actions for this.

Video conferencing with Minecraft is pretty cool too https://youtube.com/watch?v=sMH3wLuR9f0

That's awesome! Too bad they removed the content here http://verizoncraft.github.io

@harator : Thanks for posting this link here. I would have never found it on my own.

I just have a general knowledge of what neural networks are about so this video was actually more impressive to me than the one submitted. Thanks.

See PoC||GTFO 0x10 [1] for the writeup on "Pokémon plays Twitch chat", a multi-staged hack that exploits Pokémon to exploit the Super GameBoy to exploit the SNES to then display the Twitch chat.

Note that the PDF can be loaded directly as a LSNES input replay and reproduce the exploit.

[1] https://www.alchemistowl.org/pocorgtfo/pocorgtfo10.pdf

This was quite popular on Reddit when it was released.

Some discussion: https://www.reddit.com/r/Games/comments/4capfm/explanation_o...

This[1] was mentioned in its other thread. Not related to programming but the amount of thought process went into it is just amazing.

[1] "SM64 - Watch for Rolling Rocks - 0.5x A Presses (Commentated)" : https://www.youtube.com/watch?v=kpk2tdsPh0A

Next time a watch a movie where they hack a computer by literally breaking an animated firewall in cyberspace I promise not to cringe

I see it for what it is, eyecandy for the masses.

This is basically a remake of the movie The Matrix. He even flies at the end.

It's a little disappointing these types of games have become known as "Flappy Bird clones" when Flappy Bird itself was just a clone of many other games before it.

Any old Palm users remember SFCave?

I made this video in defense of Flappy Bird back when people were piling on the game and the author. There are multiple points, but it starts with my belief that people overstate the similarities to other semi-recent games and simultaneously forget much older games. The video includes clips of video games from the early 80s and even Space War! from 1962.


This is very accurate, thanks for doing this.

I hear you, but in my memory, most of those old games allowed you to maintain vertical thrust. Flappy Bird has the twist that you can only apply up-thrust in taps.

I had a Palm and never played that! Ever play Space Trader? That was probably my favorite Palm game...


On that note, is there a Palm emulator anywhere?

There are several, but none currently available for iOS, at least not through the app store. (I don't know if you care about iOS, but it's the platform I jumped to when Palm ceased to be sustainable.)

The Palm OS emulator for Windows and Linux can probably still be made to work, although in the latter case, good luck getting it to run in the absence of suitably decrepit shared library versions which your distro's package manager probably no longer provides - your best bet might be to find a DVD image of a distribution from 2003 or so, and install that in a VM to support the emulator.

Linux RPMs can be had via Sourceforge [1]. Windows binaries are apparently available from several sources; the one provided by download.cnet.com [2] appears to be free of social diseases and reasonably functional. (It'll complain about a missing skins directory, but there's a generic skin packaged with the application which will work for your purposes.)

You'll also need a ROM image. To my outright astonishment, some of these appear still to be available on the web! [3] "Palm OS 3.5-en-color.rom" boots successfully in the Windows emulator.

And, finally, you'll need the Space Trader application itself. If you don't still have a copy, it remains available for download on the developer's site [4]. Once you have it, extract the version of your choice from the zipfile - the color version works fine with the ROM I mentioned. Then (at least on Windows) right-click the emulator chrome and choose "Install Application/Database", then "Other...", and navigate to the extracted .prc file. The emulator will load the app into the virtual Palm's memory, and then you can just click the icon to run it. It seems to work quite well!

There are also several variably crummy knockoffs of Space Trader available for iOS, none of which does a good job capturing what made the Palm version fun. I keep meaning to reimplement it as a browser app or something, but...

[1] https://sourceforge.net/projects/pose/files/pose/3.5-2/

[2] http://download.cnet.com/Palm-OS-Emulator/3000-2212_4-101114...

[3] http://artnetweb.com/gh/palm_emulator/roms%20Folder/Popular%...

[4] http://ticc.uvt.nl/~pspronck/spacetrader/STDownload.html

If only we could just recompile Space Trader to Emscripten. Great response!

Sure do!!! And do you know you can now get SFCave for free on iOS? The most addictive game ever! :)

If you think Flappy Bird is a clone of SFCave or any prior title you have completely misunderstood the game. Have you played it?

So instead of hacking a bank in Bangladesh, he makes Flappy Bird on SNES

Funny, I recall that I had a Game Genie [1] code which had exactly the same effect!

[1]: https://en.wikipedia.org/wiki/Game_Genie

Watching this I can't help but imagine a sci-fi scenario where surrounding reality turns out to be virtual, with this kinds of bugs. Matrix and others left this concept completely unexplored.

The Matrix, at least, didn't leave this concept unexplored.

There is this excellent series of short animations (The Animatrix), one of the stories addresses this exact scenario.

You can watch it on Youtube: https://www.youtube.com/watch?v=ruFE126Osrg

The Animatrix is, IMO, the true sequel (and also, prequel) to the original Matrix, it is very much worth a watch.

I've been living in that world for quite some time.

The explanation of some of the glitches in the game used to enter the bytes:


Also, what had to be discovered before:


Not easy to achieve the possibility to "use the glitches in the Matrix."

He also created a working phone with web browser and video calling in Minecraft sometime back: https://www.youtube.com/watch?v=sMH3wLuR9f0

I think Verizon did most of the work on that one, not that he couldn't have done it himself.

Blindly expected sethbling, got sethbling. Its interesting just how firmly some reputations get built I think.

Well if it's some kind of crazy Mario related title, it's probably him.

This is the coolest thing I have ever seen.

This is practically hollywood hacking IRL.

There is no limit to human ingenuity.

amazing tricks

Interesting that I get downvoted for genuinely liking this video. I guess you where expecting some criticism or a longer excitement?

Comments that provide no information or insight are generally downvoted.

This is insane !

Interesting hack but saying over and over "the first human to do blah blah blah" seems awfully narcissistic

Yeah, I was probably the first human to do a lot of crap, doesn't mean I need to self-aggrandize like that

"The first human" is remarkable because there are many tool-assisted versions of this. It's delineating the fact that no emulators or automated input devices were used.

I've spent a lot of time in the early days of computing typing hex code corresponding to assembly instructions to load programs. Yes, a lot of A3 F7 <enter> C0 <enter> etc

Yes, he's doing it in a harder way, by using positions and jumps, but that's also his choice as there are automated tools to do this

Typing assembly into a medium that is built for that is worlds apart from precisely inputting it using a standard controller into a game that was not meant to do it. If you think it's not an accomplishment, you are free to try it out yourself to see how incredibly difficult it is to do without assistance from a tool. Getting it exactly right is a skill, and not an easy one to master either.

If you are doing things no human has ever done before on the regular, I'd definitely consider subscribing to your newsletter and/or YouTube channel.

He's pointing out that although this type of thing has already been done before by automated inputs (such as this video https://www.youtube.com/watch?v=OPcV9uIY5i4 ), this is the first time a human has done it.

He said it once in a 6 minute video. Twice if you count saying "I don't think anyone else has ever done this".

Watch it again. He says it at least 3 times in the first several seconds of the video.

I had the impression he said it more times, but you know, it's a videogame hack, not landing on the moon

I thought it was very impressive regardless. I'm sure it also took a lot of research, planning, and a lot of failed attempts.

"everything that is not landing on the moon isn't novel, hard or interesting".

Do it then, bud.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact