Hacker News Comments on
SNES Code Injection -- Flappy Bird in SMW
Hacker News Stories and CommentsAll the comments and stories posted to Hacker News that reference this video.
There are undoubtedly major benefits in the war against cheaters by completely removing user access to the underlying system. However I think there are two fundamental points to keep in mind on why it's not going to be an ultimate solution.
1) Unless cross-platform play is forbidden or the game is exclusively streamed-only, the cheaters will just use a different platform and will still ruin your game the same old way. It's the cheater's platform of choice that matters.
2) Games are some of the least security conscious pieces of software out there , primarily written in C++. There are bugs, lots of bugs. Process-takeover enabling bugs. I'm sure Google sandboxes the game to protect their systems, however cheaters only need access to the game process to enable most of their desires. Yes this would raise the bar in how easy it would be to cheat. Average Joe Cheat Engine users would be gone, but more skilled cheat makers will continue business as usual and their released cheats will do the exploits hidden from the actual people doing the cheating.
Bonus: See this cute hack that injects flappy bird into Super Mario World. https://www.youtube.com/watch?v=hB6eY73sLV0
 Even AAA developers are clueless about threat models. Games like Tom Clancy's The Division  and Fallout 76  are multiplayer games that put extreme trust into the client. Trust that nobody would modify their script files, trust that the client is always telling the honest truth.
No, a person can do it on a real console https://www.youtube.com/watch?v=hB6eY73sLV0
⬐ vermilinguaSaying SethBling can do it, does not mean that ordinary people can do it. He is a very talented and focused individual.⬐ httpsterioThank you, I stand corrected.
My favorite example of this is the time it was used it to inject flappy bird.
"likely only possible in TAS" has this habit of becoming possible.
SethBling turning Super Mario World into Super Flappy Birds on a console comes to mind. https://www.youtube.com/watch?v=hB6eY73sLV0
super impressive stuff. I'm generally unfamiliar with speedrunning, but I am familiar with the billy mitchell controversies, so I'm surprised that people accept the legitimacy of streamed runs. wouldn't it be trivial-enough to fake?
tangental: my personal favorite mario-related feat is sethbling injecting flappy bird into super mario world manually: https://www.youtube.com/watch?v=hB6eY73sLV0
⬐ mrobIt's possible to fake streamed runs, e.g. by miming over pre-recorded spliced/TASed runs, but Kosmic has played at live events where this would be impossible, and there's no doubt that he has the skill to do this legitimately.⬐ bhickeyBilly's live performances were miles away from his spliced runs. The live performances of top level SMB runners are in line with streamed performances. Some communities are moving toward controller cams to show each button press.⬐ ngokevinWould it be fair to say similar scandals have happened in actual sports (PEDs, judge corruption)? Cheating is often caught and corrected in the speedrunning community.⬐ MiddleEndian⬐ sp332As a regular fan of MMA and occasional watcher of boxing, I can't think of a single example of the sports' governing bodies overturning a corrupt result, even in the Olympics. Occasionally judges will be fired later; that's it.
PEDs are enforced almost sporadically; I wish they didn't bother.
Edit: By corrupt result I meant corrupt or inaccurate judging.⬐ kodCormier vs Jones 2⬐ MiddleEndianThat fight was overturned due to Jones popping for PEDs, not due to improper judging.
When I said "corrupt result" I meant corrupt judging. Sorry I was unclear.Because after all, it's still a game and this is still just about having fun. Until someone starts losing real money from video game fraud, there's no incentive to turn a friendly competition into a thing where you feel like you can't trust anybody.⬐ kryogen1cOh neat! I knew about the credits warp, but I didn't know about flappy bird. Thanks!⬐ HattesTo an extent I think that streaming has solved this problem, compared to the days of people just submitting videos that they recorded by themselves. Streamers might fake a single run to get a record, but it would be a huge amount of work to fake all the progression they had to go through to get there.⬐ dezgegI would have previously thought so too, but recently there was a cheating incident in the GTA speedrunning where already a top runner started cheating: https://old.reddit.com/r/speedrun/comments/98utvr/grand_thef.... So for a year there was apparent progression to be seen in the streams, but it was all/most due to modifying the game files to gain advantage.⬐ topmonkI agree, but furthermore after you get to a certain level of skill, you pretty much have a free pass to cheat if you like.
To wit, I don't think many people suspected Billy Mitchell of cheating until there was undeniable proof of that fact.⬐ bhickey⬐ wild_preference> To wit, I don't think many people suspected Billy Mitchell of cheating until there was undeniable proof of that fact.
Not so much. Billy has been suspected of cheating for ages. His live play is completely at odds with his WR runs. As of the early/mid 2000s he just wasn't very good at Donkey Kong when compared with his contemporaries.This just isn't true. Recently there was a Super Meat Boy cheater who was discovered due to analysis of a persistent animation across the game that wasn't lining up due to video cuts.
Pretty flimsy system (and far from "solved"), and it lets cheaters steal glory for the months or years it takes to catch them which threatens the legitimacy of the sport past a critical mass.
Moderators/judges are on the wrong side of a trapdoor function because of the amount of analysis it may take to verify a single video, and they aren't professionals in the field of video analysis.
I don't see how "all progression" is relevant here since you don't need to be a streamer to speedrun much less to submit a well-doctored video with a time that beats other people.⬐ HattesI know of the Super Meat Boy example (I've seen the Apollo Legend videos too). Was that run streamed live?⬐ wild_preferencedon't know, but my point is that it took a rather serendipitous global animation to expose them. There are people who think speed runs should require footage of the controller for the sake of a consistent analysis medium, and I'm sympathetic to them for the sake of the legitimacy of the sport at the expense of accessibility.
And to respond to your question, you can livestream a pre-recorded video so it doesn't matter. Some guy livestreamed a record breaking run of Yoshi's island or something but got cocky and streamed his controller, and someone trivially discovered he was miming it, pressing or skipping inputs after they were seen in the video. The Super Meat Boy wasn't doing that.
⬐ KindOneReddit discussion from 2016:
You still can do it: https://m.youtube.com/watch?v=hB6eY73sLV0
He also injected flappy bird into SMW manually. https://www.youtube.com/watch?v=hB6eY73sLV0
Indeed. it is the coolest SNES hack I've seen.
⬐ braveoIt should be noted that he didn't create the hack, it's something that's been fairly well known. What he did was accomplish it manually, whereas all previous solutions automated it via virtualized controller inputs.⬐ braveoIt should be noted that he didn't create the hack, it's something that's been fairly well known. What he did was accomplish it manually, whereas all previous solutions automated it via virtualized controller inputs.⬐ NoneNone⬐ qwertyuiop924Yes. I did (try) to point that out. But the fact that he did it by hand was really cool.⬐ braveoabsolutely, and if I recall, he did it his first live try.
It was definitely impressive but as a software person I'm more impressed by the ones who came up with the hack itself.
Youtube is full of hidden gems, all a matter of taste.
Math'n'music edutainment: https://www.youtube.com/user/Vihart
Science edutainment: https://www.youtube.com/user/Vsauce
Feats of incredible gaming skill: https://www.youtube.com/channel/UCz4GCnY4I0380v7GmXQQSWw
Tidbits of hacking ingenuity: https://www.youtube.com/watch?v=hB6eY73sLV0
Looking for heart in pop culture: https://www.youtube.com/user/Nerdwriter1
You can get lost in the maze of excess information. It's great - i think...
⬐ WizardlySquidI want to brush up on my meta-programming but Jonathan Blow is such a douche.
⬐ userbinatorIt'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.⬐ girvo⬐ hartator> the pipes, however, are perfect
You probably know this, but thats because the Flappy Bird pipes lifted Mario's pipe sprite entirely!⬐ vardump⬐ AnimatsMany eighties games used similar style for 3d-shapes.⬐ panicNo, they didn't: http://i.imgur.com/mN2RMNy.png⬐ RottenHumanmaybe from a different Mario game?⬐ ManlyBread⬐ girvoLooks a lot like Mario Advance 3.⬐ justinlardinoisSuper Mario Advance 3 was a port of Yoshi's Island. Yoshi's Island pipes for reference:
Not anywhere close.⬐ ManlyBreadActually I was thinking of Super Mario Advance 4, which is the port of Super Mario Bros. 3, thus the mistake on my part.Fine, "heavily inspired by".⬐ raverbashingUsing 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.⬐ NietTimI don't think the creator of flappy bird gave a damn about IP violations.⬐ tamanaNot 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⬐ BugeYou're thinking of trademark, which would require confusion.
Copyright is another type of IP, and does not require confusion. It only requires copied content.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.⬐ DrdrdrqSomething 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.He also did this: https://www.youtube.com/watch?v=qv6UVOQ0F44 (Also really impressive, I think this guy is a genius.)⬐ harryf⬐ l-pVideo conferencing with Minecraft is pretty cool too https://youtube.com/watch?v=sMH3wLuR9f0⬐ pfista⬐ jags-vThat'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.⬐ rpgmakerI 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.⬐ NoneNone⬐ NoneNone⬐ panicThis 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.⬐ minimaxirThe overfitting problem is addressed in the followup: https://www.youtube.com/watch?v=iakFfOmanJU⬐ stormbrewI 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.See PoC||GTFO 0x10  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.⬐ beefsackThis was quite popular on Reddit when it was released.
Some discussion: https://www.reddit.com/r/Games/comments/4capfm/explanation_o...⬐ meanduck⬐ mkoryakThis was mentioned in its other thread. Not related to programming but the amount of thought process went into it is just amazing.
 "SM64 - Watch for Rolling Rocks - 0.5x A Presses (Commentated)" : https://www.youtube.com/watch?v=kpk2tdsPh0ANext time a watch a movie where they hack a computer by literally breaking an animated firewall in cyberspace I promise not to cringe⬐ digi_owl⬐ colordropsI 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.⬐ beefsackIt'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?⬐ sopooneo⬐ cloudjackerI 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.⬐ pmarreckI 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?⬐ throwanem⬐ daniel_iversenThere 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 . Windows binaries are apparently available from several sources; the one provided by download.cnet.com  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!  "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 . 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...⬐ pmarreckIf 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! :)⬐ KiroIf you think Flappy Bird is a clone of SFCave or any prior title you have completely misunderstood the game. Have you played it?⬐ ewmailingI 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.⬐ partycoderThis is very accurate, thanks for doing this.So instead of hacking a bank in Bangladesh, he makes Flappy Bird on SNES⬐ rollulusFunny, I recall that I had a Game Genie  code which had exactly the same effect!⬐ golergkaWatching 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.⬐ ada1981⬐ acqqI've been living in that world for quite some time.⬐ luso_brazilianThe 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.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."⬐ petetntHe also created a working phone with web browser and video calling in Minecraft sometime back: https://www.youtube.com/watch?v=sMH3wLuR9f0⬐ Retr0spectrum⬐ vetromI 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.⬐ nkrisc⬐ ccvannormanWell if it's some kind of crazy Mario related title, it's probably him.This is the coolest thing I have ever seen.⬐ staticelfThis is practically hollywood hacking IRL.⬐ kendallparkThere is no limit to human ingenuity.⬐ pacomerhamazing tricks⬐ pacomerh⬐ hathymInteresting that I get downvoted for genuinely liking this video. I guess you where expecting some criticism or a longer excitement?⬐ 88e282102ae2e5bComments that provide no information or insight are generally downvoted.This is insane !⬐ vans⬐ raverbashingInteresting 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⬐ stormbrew⬐ JoshTriplettIf 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.⬐ BugeHe'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.⬐ cypharHe said it once in a 6 minute video. Twice if you count saying "I don't think anyone else has ever done this".⬐ raverbashing⬐ optimiz3I had the impression he said it more times, but you know, it's a videogame hack, not landing on the moon⬐ cyphar⬐ hellofunk"everything that is not landing on the moon isn't novel, hard or interesting".⬐ mralvarDo it then, bud.⬐ tehreiYeah, it's just a videogame hack not, you know, BRAIN SURGERY, am I right.⬐ RadicalRaidI thought it was very impressive regardless. I'm sure it also took a lot of research, planning, and a lot of failed attempts.Watch it again. He says it at least 3 times in the first several seconds of the video."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.⬐ raverbashingI'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⬐ mynameisvladTyping 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.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.⬐ grenoireIt 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.⬐ shultaysThat is also for the sake of optimzations though. It reuses swimming physics and animations because it makes code shorter
⬐ harryfThis really deserves more attention. Insanely cool hack - the "by Hand" means using the Nintendo game controller to move sprites in such a to inject processor instructions into Super Mario World via glitches in the game
⬐ jossoReally impressive job by SethBling and p4plus2.
The notes for how to replicate it can also be found in this Google Document and the payload for the injected game itself is also available.⬐ leeoniyathis one is also pretty crazy:
Super Mario World Credits Warp Explained⬐ pbkhrvReminds me of what it takes to debug a dozen microservices talking to each other.⬐ smailiJust out of curiosity, are there any risks of corrupting the cartridge?⬐ efinr⬐ matt_morganAFAIK it writes to RAM only. also AFAIK the cartridge is ROM⬐ mikeashThe game code itself is in ROM, so there's no risk there. There is some nonvolatile storage on the cartridge used to save games, which could potentially be corrupted. The save state is so simple that I don't think there's any risk of trouble from that, besides losing (or gaining!) saved progress.⬐ DrakimActually, you could in theory craft save-data that softlocks the game when the save-data names are displayed. If the game isn't programmed to wipe bad save data you'd be in trouble.
Not saying this is the case for SMW, but there are certain cartridge games where this can happen naturally.⬐ JonnieCacheThere are exploits used by speedrunners in Donkey Kong Country 2 that can cause corruption to the nonvolatile save state which will "brick" the cart. It can be fixed by opening the cart up and disconnecting the battery.⬐ jtolmarI hope someone eventually finds a way to perform arbitrary code execution based on SRAM.
Probably not on SMW, but Pokemon is getting broken enough that it may some day be possible. There's already inventory-based exploits that can get saved across resets, but someone still has to play the game and open up the inventory screen for that.⬐ FreeFullThe game also stores a checksum of the nonvolatile storage, so even if you do corrupt it, it will be detected and cleared.My 9 year old son, a SethBling fan (like me), got home from school right when I clicked on this. I had to explain why I was watching YouTube while "working." Great video for us to watch together!⬐ BHSPitMonkeyReally scary stuff. I hope the SNES Security team is taking this seriously and gets a patch out to customers quickly.