Such 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"
God, 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.
Stupid 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).
Ask any parent how much time they had free (and didn't realize) before having kids. It's quite interesting how much time we have free and not really realize.
Not saying that work doesn't take out a very big chunk of it, it does. But we still have more free time than sometimes we realize.
What we many times lack, is perspective and commitment.
New parent here with a 2 year old. I get about 30 minutes of free time a day. Usually that time is just before bed when you’re already exhausted. Like you said, I look back and wonder what the heck did I do with all that free time.
I 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.
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 :)
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.
No. 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?
Focusing on the concept of deriding, or at least, minmizing, the thought intesnsive hobbies of trust fund babies: I think rich people doing weird (neither productive nor malicious) hobbies is great. That's where some of our most powerful and foundational mathematics and scientific tools came from. e.g. Newton, Raleigh, etc
Some of those “hackers” are twelve years olds, so earning money may not be the most important thing for them.
Some people are just unique. I have met a few people (not many) who have endurance to work all day, and spend hours on more techy stuff at night. I can live that schedule maybe once a month without burning out.
I feel sorry for you that you have no spare time outside of work, but work on yourself and try and improve the system instead of shitting on other people's projects or making assumptions about their situations.
People 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.
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.
If you have ACE, what’s the difference between fixing the kill screen bug and `score = SCORE_MAX`?
I 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.
Relatedly, this is why zfg, a famous (debateably the best) Ocarina of Time speedrunner, doesn't do Any%, and has also opted out of the 100% category. He'd rather play the game than not play the game.
the difference right now is that score=max hasn't been shown possible yet
I love when really smart people spend a lot of time and effort doing completely useless things.
Many scientific discoveries happen this way. Number theory was originally considered useless but now powers basically all public key crypto.
There’s that quote Adam Savage always says that goes something like “the difference between ‘science’ and ‘goofing off’ is writing it down”.
I’ve always liked that sentiment, since it sort of works to “ungatekeep” science. It’s easy to be intimidated by the seeming monolith of “science”, but fundamentally science basically boils down to “doing, testing, and measuring something” and it doesn’t really matter what that “something” actually is.
I love when really smart people spend a lot of time and effort doing completely useless things
It's not useless: they like doing it.
Any use other people might derive from the things you don't like doing (but still do) is either a happy accident, or something that benefits you indirectly (money so you can live, recognition, etc).
Doing something because you like it is the most immediate form of usefulness to the person it matters most: you.
I love when really smart people spend a lot of time and effort doing completely useless things.
That is the epitome of this guy's YouTube channel:
Honestly, 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
Honestly, I'm surprised that it took tetris so long to be broken!
Before this, what made you think arbitrary execution was plausible?
Things like this are common in software of the era, but few look for such things.
That doesn't answer the question at all. They said specifically that they expected this in tetris before it happened for some reason.
...that does answer question tho?
tetris = old game
old game = expectation of ACE bugs
thus, tetris = expectation of ACE bugs
The entire nature of the kill screen in NES Tetris is that the game crashes because the game has written over its stack.
I 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.
Super Mario World code injection: https://www.youtube.com/watch?v=hB6eY73sLV0
Just 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.
Getting 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.
Sometimes 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
Super Mario World: https://www.youtube.com/watch?v=hB6eY73sLV0
Yeah, 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.
Not 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.
SNES 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.
Off 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 ;-)
Yes, that's me.
I 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.
Time well wasted.
what 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)
I don't think GP is suggesting the time was wasted. Rather the opposite.
Agree that’s also how I interpreted the comment
Indeed, that does seem quite plausible! Thanks.
Feynman 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.
The 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.
My favourite part of that story is when he shows the maths to one of the other professors they can't understand why he is "wasting time" on it.
And then he goes on to win the Nobel prize because of it..
I 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.
Indeed. 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.
I guess the HN comment box must be doing unethical mind control tricks too.
I 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.
The factorio guys are way too dedicated to squashing bugs for that.
Factorio can run Doom though: https://www.youtube.com/watch?v=0bAuP0gO5pc
How long before someone runs Doom on Tetris?
That might require a RAM extension cartridge.
If 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.
I 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.
I'm sure the sysadmins can restart us. They do have backups, right?
Even if you have backups, if you have never tested your backups, you don't have backups.
Not to worry, the VM we're on has only been running since last Tuesday.
If someone were to restore the universe from a faulty backup, would we even know there was anything missing? Assuming the consistency checks passed.
Even if they restored us from a good backup, we probably wouldn't like the debugging session that follows.
The dark matter is just ghosts of println/log statements?
so that's where my socks have been going missing!
You have a lot more faith in world-ops than I do. You think the have tests and checks?
The computational substrate might just be a side-effect of something else happening in higher dimensions.
All of the sysadmins were fired, and along with IT, were replaced with devops SWEs who thought replication was good enough.
If someone were to find an exploit to run arbitrary code using the computational ultrastructure of the universe, I wouldn't be too sure if in-game restrictions could keep us safe, though!
I would be less concerned with them succeeding and more with them failing and crashing the local shard
Let’s hope there are backups.
It’s ok, when it crashes it reboots and runs the same way from the beginning, so it would be like nothing even happened.
Ah yes, that old reliable determinism will save the day.
The only problem is that it also replays the part which caused the universe to crash.
So the universe is a Docker container?
A blue screen would prove someone wrote shitty drivers so we'd know the universe is more like Windows than like OS X
The universe is actually more like Linux: we got it for free, but we have to figure out how it works on our own.
You call this free?
"Free" as in, "you arent paying the AWS bill" as opposed to "free speech" or "free beer"
To be fair, the universe offers as much free speech as is possible. You can say anything you think of. The universe ain't gonna stop ya.
Futurama already proved the universe is a simulation inside of a simulation written by some forgetful professor.
https://youtu.be/9gWgNetp8jE
Being involved in a vacuum decay event would not be bothersome in the slightest.
A very hard sci-fi novel about something like this:
https://en.wikipedia.org/wiki/Schild%27s_Ladder (beware spoilers)
One of my favorites, and the only Greg Egan novel I've ever written fanfiction of. It looks dated compared to his newer writing, but the central conceit is something else.
The program doesn't notice when it crashes
that's just the first step for getting Doom to run
Well, we just discovered a sync error, so that might be a good edge case to start on:
https://www.science.org/content/article/quantum-paradox-poin...
That's not a sync error: it's just a demonstration that all collapse theories are inconsistent with some other assumptions we like to make. (There are many alternatives, the most famous of which is probably Hugh Everett III's relative state model, though none of them are completely elegant.) It hasn't just been discovered: it's been known since the 60s, and developed on-and-off since.
Of course, we haven't really tested this because we haven't attempted to put humans “in a superposition”. Physicalists assume that photons are adequate substitutes for humans, in the thought experiment, but something's wrong with our intuitions, so imo we should adopt some philosophical rigour about this whole thing.
Generally 'discovery' relates to experimental results and not theory.
For example, it seems like it would be more appropriate to say that the quantized nature of light was discovered in the early 20th century when confirmed by experiment and not that it was discovered in antiquity when Epicurus or Lucretius were talking about how light was made up of the smallest possible parts moving very quickly.
Also, given the parameters of the experiment in question, it arguably would be better described as "multi-layered Bell" than "Wigner's friend."
Everett's also fares well for the Frauchiger-Renner paradox too.
@skdh has some takes on this:
https://youtu.be/GerzZ6GDe-0?t=432
https://www.youtube.com/watch?v=Wsjgtp9XZxo
Superderminism seems the odd choice to embrace here.
Also, given the Frauchiger-Renner paradox, the Occam's razor for fewest assumptions between the two would be contradictory outcomes being what needs to be embraced. Superderminism doesn't resolve Frauchiger-Renner.
Additionally, it seems really odd to me that it's at the exact point where a continuous system would be impossible to simulate (interactions with a presumably free agent) which is where things collapse to finite quantities, and yet as soon as the persistent information about such an interaction is erased it goes back to behaving continuously.
While superderminism could address the paradoxes, if superderminism existed the very behavior and quirkiness occurring seems superfluous viewed as a system design.
Space-time? Why limit too space, meta-time is so much more interesting.
This wasn't a flippant remark either. Read Henri Bergson Time and Free Will for some thought provoking analysis.
I'd like to point out this book is available as a free download from the authors blog:
https://www.antipope.org/charlie/blog-static/fiction/acceler...
I believe that's what we call "physics"