6 ms·
Hackers discover how to reprogram NES Tetris from within the game
- brokenmachine 2y agoI love this kind of stuff. Reminds me of how they programmed Flappy Bird inside Super Mario World using glitches. Crazy stuff. https://www.youtube.com/watch?v=hB6eY73sLV0 https://www.youtube.com/watch?v=hB6eY73sLV0
- bena 3y agoGetting to the point of arbitrary code execution is always more interesting than what you do with it after the fact. To be able and take apart the game, find out when and where it does all this, then where you can manipulate things to input instructions, is a level of dedication that's admirable.
- Dwedit 3y agoSometimes even after you've come up with the exploit, you can create something really beautiful for the console to run afterwards. Pokemon Yellow: https://www.youtube.com/watch?v=Vjm8P8utT5g https://www.youtube.com/watch?v=Vjm8P8utT5g Super Mario World: https://www.youtube.com/watch?v=hB6eY73sLV0 https://www.youtube.com/watch?v=hB6eY73sLV0
- bena 3y agoYeah, but once you get to arbitrary code execution, everything is on the table. It's about as interesting as just creating it from scratch. The "something" stands on its own merits, separate from how it was created.
- jordigh 3y agoNot everything, depends on the system. On the NES, for example, you can only mess around with RAM if you find ACE, but if the cartridge is using CHR ROM, whatever you create with ACE must still use the only tileset available to the game. You can get creative drawing graphics with a fixed set of tiles, but you'll be constrained nonetheless. There may be other constraints for other systems. I don't know the SNES architecture too well, but I assume even with ACE you're still limited in various ways to the constraints of the cartridges.
- Dwedit 3y agoSNES does not put video memory on CHR-ROM, it's all writable RAM. The restriction is total RAM avaialble (including cartridge save ram), possibly calling functions or using data from the original ROM.
- NanoWar 3y agoOff topic, but hey is that you, Dan from the old Ti83 World? Thanks for the huge include file and I loved your work on DQM ;-)
- Dwedit 3y agoYes, that's me.
- GuB-42 3y agoI particularly like the Super Mario World one. Arbitrary code execution is triggered by an actual shell code. As in, it is done by manipulating Koopa shells in game.
- apantel 3y agoTime well wasted.
- freedomben 3y agowhat do you do for fun? do you consider that time wasted? (honest question. I did used to consider fun stuff to be time wasted, but as I've gotten older and am paying the price for a long-term high stress lifestyle, I'm starting to think differently about it)
- smu3l 3y agoI don't think GP is suggesting the time was wasted. Rather the opposite.
- indigodaddy 3y agoAgree that’s also how I interpreted the comment
- freedomben 3y agoIndeed, that does seem quite plausible! Thanks.
- milesvp 3y agoFeynman has a fantastic anecdote about getting over what we might today call burnout. He was not interested in work at all in his professorship, when he noticed a wobble in a plate being thrown, and wondered about it. He spent all day working on the physics of this toy problem, and claims discovering play as the key to his recovery. If you haven't read them yet, "Surely You're Joking, Mr. Feynman", and "What Do You Care What Other People Think" were great reads in my 20s.
- jvanderbot 3y agoThe punch line is that the equations he worked out ended up being useful for his Nobel Prize winning work. So it ended up being useful even if that wasn't the goal.
- hnthrowaway0328 3y agoGod, I love these people. I feel shameful to not have such a hacker mindset -- to do something probably useless just for the fun of it. I love these people.
- farseer 3y agoStupid question but are such hackers mostly trust fund babies? With their future secure and nothing but boredom? Coz the rest of us are too busy making a living for such exploits (no pun intended).
- nusl 3y agoNo. It's very much okay to just do things because you enjoy doing them. Surely not every single thing you do in your life has meaning, but it might have meaning for you. What's the point in dropping a strange negative comment like this anyway? Are you unhappy that others are happy?
- ZaoLahma 3y agoI doubt trust fund babies would spend their days hacking an old NES game. No idea of who would do it though. My best guess is young-ish brilliant engineers in the beginning of their careers, before they've taken on too much responsibility at and outside of work. Those who still have a lot of excitement for the field with a lot of time on their hands.
- coldpie 3y ago> Those who still have a lot of excitement for the field with a lot of time on their hands. Hahaha, yeahhh. I'd love to do this kind of stuff, but after sitting at a computer for 8 hours every day for work, the last thing I want to do in my free time is sit in front of another computer :)
- thrdbndndn 3y ago> Coz the rest of us are too busy making a living Bar some exceptions, most people are not that busy (including me and likely you). They just lack commitment.
- mcculley 3y agoSuch exploits always remind me of the line from Stross' Accelerando about the ultimate end game for hacking: "running a timing channel attack on the computational ultrastructure of space-time itself, trying to break through to whatever's underneath"
- smegger001 3y agoI am fairly sure I would not want to be within the lightcone of anyone making a attempt with chance doing anything. thats sounds like a good way to trigger vacuum decay and I would rather that universe not bluescreen.
- jpalawaga 3y agoHonestly, I'm surprised that it took tetris so long to be broken! I strongly suspect this will usher in a new era of any% runs, in which the goal is to get the end scene/credits of the game to run as quickly as possible. My favourite example of this is Ocarina of Time, which has had ACE exploits for years now. The game is so totally broken, it can be "beat" in just a handful of minutes by manipulating the games memory and editing specific entrance warps. Perhaps most incredibly, people edit the memory with their hands, using nothing more than a couple buttons and the analog joystick. here is someone who rolled credits in just 3m: https://www.speedrun.com/oot/runs/z1l1627m https://www.speedrun.com/oot/runs/z1l1627m
- jvanderbot 3y agoI saw a similar one Super Mario, where finding a glitch in a warp tunnel triggered an out of bounds read, and prior joysticking wrote the appropriate bytes just beyond the buffer to trigger whatever they wanted. There was another one in a Pokemon game where you had to do a bunch of buy/ sell transactions to prep memory just so, then overflow an item count to trigger a jump. Truly fantastic stuff. Someday aliens will attack and these antics will save us.
- daveofiveo 3y agoSuper Mario World code injection: https://www.youtube.com/watch?v=hB6eY73sLV0 https://www.youtube.com/watch?v=hB6eY73sLV0
- smrq 3y agoJust based on reading TFA, I doubt it since the ACE apparently relies on getting to the kill screen in the first place. Imagine if OoT's ACE was triggered by the end credits rolling; you can't improve your times with it because it only happens after completing a run successfully.
- CyberDildonics 3y agoHonestly, I'm surprised that it took tetris so long to be broken! Before this, what made you think arbitrary execution was plausible?
- tombert 3y agoPeople figuring out ACE in old games utterly fascinates me. I remember seeing this in Super Mario World a couple years ago and I became a bit transfixed on how that was even possible. I mean this in the best way, and I am being complimentary, but it's going to sound like I'm being a jerk: I love when really smart people spend a lot of time and effort doing completely useless things. Is there any reason, at least immediately, to inject code into NES Tetris? No, I doubt it, but that's not the point. The point is figuring out what's possible, and figuring out what you can force some old code and a primitive computer to do. It might not be "useful" in the classical sense, but neither is a Sudoku puzzle or a crossword puzzle or playing NES Tetris to begin with.
- memco 3y ago> Is there any reason, at least immediately, to inject code into NES Tetris? It’s somewhat obscured by all the technical details but doing this exploit does have a practical purpose: it allows highly skilled players to play longer since they can now have a way to prevent a crash that prevents them from playing past certain points. For the average player there’s no practicality to this but for those who want to compete for the highest scores this solves a limitation and opens new opportunities for competition.
- krallja 3y agoIf you have ACE, what’s the difference between fixing the kill screen bug and `score = SCORE_MAX`?
- memco 3y agoI guess that's an open question that the community will decide. I can't speak for anyone in particular, but if you watch live streams of fractal, bluescuti, etc. their primary drive seems to be to have more game to play, not less. They already go far beyond the 'max' score that the UI can display. For them to "beat" Tetris is to play so long that there's no more game left to play not just to get the biggest number.
- 0xDEFACED 3y agoHow long before someone runs Doom on Tetris?
- layer8 3y agoThat might require a RAM extension cartridge.
- maCDzP 3y agoI want to this with Factorio. Build a huge computer within Factorio made out of belts. Make it seg fault and break out of the game.
- colechristensen 3y agoThe factorio guys are way too dedicated to squashing bugs for that.
- Cthulhu_ 3y agoFactorio can run Doom though: https://www.youtube.com/watch?v=0bAuP0gO5pc https://www.youtube.com/watch?v=0bAuP0gO5pc
- unwind 3y agoIf you don't want to read the full article but still wonder "huh I thought NES carts ran from ROM?", then yeah they do but the exploit manages to make the CPU jump into RAM that is used to store the high score table. Fantastic.
- resource_waste 3y agoI feel like any sort of time spent on NES/SNES in 2024 is just evidence of Nintendo doing unethical mind control/psychology tricks on children. These people are talented, there is no sane reason they picked this project.
- Retr0id 3y agoI guess the HN comment box must be doing unethical mind control tricks too.
- krapp 3y agoIndeed. No talented hacker in their right mind would ever touch "obsolete" software or hardware, there is literally no reason why anyone would choose to do that. Could only be mind control.
- deleted 3y ago[deleted]
- fortyseven 3y agoWhen you learn about the world of retro gaming you're going to shit your pants and start wearing a tinfoil bikini.
- cchi_co 3y ago[dead]