Joined: 11/13/2006
Posts: 2822
Location: Northern California
Fair point, I hadn't considered that.
Well, that definitely is more of a gray area. If manipulating different random encounters is the most you can do given what you'd use in the route then it seems like it'd be okay. There's a difference between not knowing how to/not being able to use a known glitch to achieve ACE and knowing how to/being able to achieve ACE using that glitch but choosing not to.
Then again, I'm not a judge or an expert so my opinion shouldn't mean anything.
This does kinda call another topic into question about using things like warp glitches and light memory corruption (non-ACE) in 100% runs, but that's a discussion for another thread.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
In a technical sense there is no difference. Modified memory is automatically executed as "proper" procedure, unless you meant execution as ACE.
Modifying memory and having the game not use it is quite pointless.
Honestly I would prefer it doesn't skip stages using such things but eh. The "small only" one is vastly more entertaining as a result.
Someone here was working on a legitimate 96 exit run on the GBA one, which lacks the memory corrupting glitches of the SNES version so that would be the definitive 96 exit run to me, anyway.
Flying though solid matter/glitchwarping through walls... that's fine. Typical TAS material. Outright skipping stages via telling the game to load the end-of-stage routine at the first screen is fine, too. But it seems awfully redundant alongside an ACE run.
"Glitchless" or "memory corruptionless" runs could be quite entertaining. I remember Bisqwit was working on a glitchless Mega Man run, but I don't think he ever finished it. A lot of the games here that feature what I consider "redundancy" would be very entertaining without some glitches (stage-skipping/false-items in SMW, etc).
At the end of the day, all movies are more for entertainment, but there should be a line on what's defining content overlap. Any% "with skips" is still an any% "with skips".
It does not claim to actually do anything else except for get "96 exits", which is very arbitrary in and of itself, especially when 100 are actually possible.
Though they're only possible with massive memory corruption, the run already does it.
And yes I kind of do consider it awkward to have alongside the other two, especially when it doesn't skip enough stages. It is very awkward when you have random stages here and there get skipped, it plays a few stages, skips, and so forth.
What part of it is using anything more than simple RNG manipulation? I've watched that one several times over the years. I don't recall anything unusual in that regard.
Do you mean the Trainer/Fly glitch (aka Mew glitch)? If so... that's pretty tame.
I am personally of the opinion that a "100%" run should be just that, a run that actually gets 100% of things and isn't warping or corrupting memory to flag things as obtained, otherwise why not use ACE/save corruption to flag everything as obtained and at 100%?
Though it does need to be said what exactly IS "light memory corruption". If it's powerful enough to skip 99% of a stage after entering its first screen, that's not light.
I have watched the current "no ACE" run of Pokemon Blue a few times over the years. Though it does feature some glitches, I don't recall anything that made me think "Why is he skipping [x] thing in a warpless run?". Nothing was too significant.
I think Brock was skipped, but that's a mere two battles of the several dozen in the game, and in return it showed off entertaining glitches on how to get past Pewter without fighting him, and get past the Badge Checkers.
(correct me if I'm wrong about it actually skipping Brock.)
ACE: You have control of memory that the game executes.
Memory corruption: You have control (maybe) of memory that the game reads.
I don't understand why you say 'in a technical sense' if you have no idea what the difference between reading and executing is...
So to you, it makes no difference whether a run just modifies memory, or executes it?
In a technical sense there is no difference. Modified memory is automatically executed as "proper" procedure, unless you meant execution as ACE.
Modifying memory and having the game not use it is quite pointless.
ACE: You have control of memory that the game executes.
Memory corruption: You have control (maybe) of memory that the game reads.
I don't understand why you say 'in a technical sense' if you have no idea what the difference between reading and executing is...
"Reading" it is wholly pointless if said corrupted memory is never utilized.
If the corrupted memory is being utilized - it is being executed. I am well aware that ACE is total control over the game. That's nothing new.
Reading and utilizing memory is not the same as executing it.
01 Open your book at page 55
02 Read out the topleft word
Slight memory corruption might change the topleft word (heck you might even be able to change it through completely regular gameplay or a minor glitch). By changing that word, it'd make you read out something different. That's not executing the changed memory though. ACE starts when you manage to manipulate the list of instructions itself instead.
01 Open your book at page 55
02 Tear out the page and eat it
This is the beginning of ACE. You change the list of instructions itself. Total control is when you can manage something like this:
01 Open your book at page 55
02 While your book is opened at page 55
03 Do exactly what I say (f.e. executing controller input)
Then, "whatever I say" can become something like you should learn to play the piano. And then I'd make you play some nice songs.
Can you see that by just regular memory manipulation something like this isn't possible at all? Even if you change all the words in all the books, it can just make that person read out a different word. ACE is on another level.
If you want to argue slippery slopes, then, as others have pointed out, you could just extend the slippery slope to show why it's ridiculous.
1) Memory manipulation can sometimes lead to ACE, so there should be no difference. If a run manipulates memory, it might as well do ACE and reach the credits. It's basically the same thing, just the one time you use memory manipulation to its fullest capacity, and the other time you don't.
2) Minor glitching can sometimes lead to memory manipulation, so there should be no difference. If a run does minor glitching, it might as well do memory manipulation and accomplish ACE. It's basically the same thing, just the one time you use minor glitching to its fullest capacity, and the other time you don't.
3) Controller inputs can sometimes lead to minor glitching, so there should be no difference. If a run does controller inputs, it might as well do minor glitching and accomplish memory manipulation. It's basically the same thing, just the one time you use controller inputs to their fullest capacity, and the other time you don't.
"But controller inputs were intended by the developers and the rest wasn't"
We all already agree on this. However, it's not possible to find out what exactly was intended by some developer and what wasn't. It's difficult to know where to draw the line. That's why there are so few "glitchless" runs.
In determining where ACE really starts, there can also be grey areas, and whenever those come up, you can count on there being some discussion about them. We already know there can be grey areas sometimes.
However, even with minor grey areas, it should be easy to see which category to put a run into. Is it mostly glitchless, but allows some glitch that's very hard or impossible to avoid? Clearly in the glitchless category. Does the game execute some sprite memory as code at some point that's unavoidable? The devs just never noticed because it usually doesn't mess anything up? Well, you could argue that's a grey area for ACE, as the sprites could easily be manipulated. However, there could be a run that's consciously avoiding that, to show off other glitches that many people would like to see. Put it in the ACE category? Reject it? What for if it's unavoidable?
If that still doesn't help, reading [URL=http://en.wikipedia.org/wiki/Splitting_%28psychology%29]this[/URL] might help, but it probably won't. You might feel the need to seperate runs entirely into two seperate categories, 100% glitch free and 100% glitched. That would make you feel at ease, before that's done, something would never seem quite right or slightly awkward to you.
This is not meant to be a diagnosis, but as a provocation to reflect on your way of thinking.
Why is this still being argued? You guys are too easy to troll.
Either the guy is being ignorant on purpose or is ignorant of his ignorance. He doesn't know how microprocessors work. Nothing will come of this. But please continue if you want to provide minor and ever dwindling entertainment value.
I don't mind being trolled every now and then. I also don't mind being wrong. The spirit in which your words were written might sometimes be more important than how much truth lies in them. Words can never perfectly describe anything, so they're always wrong to an extent. That's why it's so easy to infinitely extend an argument, because it's so easy to find aspects of un-truths within somebody's words.
If I minded being wrong, I'd either never speak a single word or speak as many words as I can to make sure I got the last one that hasn't been exposed yet.
Reading and utilizing memory is not the same as executing it.
01 Open your book at page 55
02 Read out the topleft word
Slight memory corruption might change the topleft word (heck you might even be able to change it through completely regular gameplay or a minor glitch). By changing that word, it'd make you read out something different. That's not executing the changed memory though. ACE starts when you manage to manipulate the list of instructions itself instead.
Unless said overwrote/garbled memory is being actively executed the fact that it was corrupted will not be known.
By your example what does the infamous MissingNO. glitch constitute as?
It starts to corrupt and execute parts of the memory that it shouldn't, including some parts that are just outright corrupted by the glitch.
1) Memory manipulation can sometimes lead to ACE, so there should be no difference. If a run manipulates memory, it might as well do ACE and reach the credits. It's basically the same thing, just the one time you use memory manipulation to its fullest capacity, and the other time you don't.
For games featuring ACE that shpuld be the definitve "memory corruption" run, accompanying runs should avoid its use.
We'd also need to know what on earth "memory manipulation" means to start a proper discussion of your poorly-construed hyperboles.
2) Minor glitching can sometimes lead to memory manipulation, so there should be no difference. If a run does minor glitching, it might as well do memory manipulation and accomplish ACE. It's basically the same thing, just the one time you use minor glitching to its fullest capacity, and the other time you don't.
3) Controller inputs can sometimes lead to minor glitching, so there should be no difference. If a run does controller inputs, it might as well do minor glitching and accomplish memory manipulation. It's basically the same thing, just the one time you use controller inputs to their fullest capacity, and the other time you don't.
The second one is non-descriptive and doesn't even say anything noteworthy and the third one is literally a joke and isn't worth replying to (which you intended).
However, there could be a run that's consciously avoiding that, to show off other glitches that many people would like to see. Put it in the ACE category? Reject it? What for if it's unavoidable?
If that still doesn't help, reading this might help, but it probably won't. You might feel the need to seperate runs entirely into two seperate categories, 100% glitch free and 100% glitched. That would make you feel at ease, before that's done, something would never seem quite right or slightly awkward to you.
This is not meant to be a diagnosis, but as a provocation to reflect on your way of thinking.
I am doing quite well, Freud, but thank you for your brilliant and stunning analysis of a person you've never talked to prior.
</sarcasm>
You seemed to have think I was talking about minor corruption (i.e.: "Look! He was holding U+D to walk upwards faster! Now there's a dead pixel on tbe bottom-right of the screen!"). No, we're talking about major, serious corruption capable of skipping levels of a game at a time (the Orb glitch in SMW, end-of-stage object in Mega Man, etc).
How absurd does this look for branches?
any%
any% huge skips
any% skips less
any% skips even less
any% skips even less than the last
Yes I'm using hyperbole now to get my point across because this is essentially what happens.
https://www.youtube.com/watch?v=vaDdLJjepZI <-- any% huge skips (everything skipped)
https://www.youtube.com/watch?v=_lnogpRPvY4 <-- any% skips less (~2.5 (I still say 3 because most importantly, the BOSS is skipped in the last one) / 10 stages and more than that in terms of bosses skipped)
https://www.youtube.com/watch?v=s760jW7HnZc <-- any% no skips (obsoleted by "any% skips less")
Unless said overwrote/garbled memory is being actively executed the fact that it was corrupted will not be known.
Changing the words in the book in my example makes you read out something different. It's not being executed. You don't do what the book tells you to. Yet I can hear you say something out of the ordinary. So the fact that the words in that book have been changed can be known. If this isn't clear to you, I cannot help.
I am doing quite well, Freud, but thank you for your brilliant and stunning analysis of a person you've never talked to prior.
This is not meant to be a diagnosis, but as a provocation to reflect on your way of thinking.
I take it you aren't interested in changing your way of thinking. That is fine. It was meant as an offer.
Unless said overwrote/garbled memory is being actively executed the fact that it was corrupted will not be known.
Changing the words in the book in my example makes you read out something different. It's not being executed. You don't do what the book tells you to. Yet I can hear you say something out of the ordinary. So the fact that the words in that book have been changed can be known. If this isn't clear to you, I cannot help.
I am doing quite well, Freud, but thank you for your brilliant and stunning analysis of a person you've never talked to prior.
This is not meant to be a diagnosis, but as a provocation to reflect on your way of thinking.
I take it you aren't interested in changing your way of thinking. That is fine. It was meant as an offer.
The way you described it:
"Page 55 reads:
Turn the dail to have running water."
A lot of people have been found in studies to actually read typos as the world they're an error of, and oftentimes do not notice that there WAS an error.
The way it happens:
"Page 55 reads:
Turn the elegant to have running water."
Obviously, it's a different word with a different meaning.
You also seem to have missed the sarcasm tag. You intended it as provocation? I responded to your provocation the way you wanted, sarcasm included.
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
Dyshonest wrote:
In a technical sense there is no difference. Modified memory is automatically executed as "proper" procedure, unless you meant execution as ACE.
Modifying memory and having the game not use it is quite pointless.
Dyshonest wrote:
"Reading" it is wholly pointless if said corrupted memory is never utilized.
If the corrupted memory is being utilized - it is being executed. I am well aware that ACE is total control over the game. That's nothing new.
Dyshonest wrote:
Unless said overwrote/garbled memory is being actively executed the fact that it was corrupted will not be known.
It seems the confusion here arises from (again) you either misusing existing terms, or just making up your own definitions. In general, there are three things you can do with data: read, write or execute. You seem to be confusing reading and executing data.
For example, let's say you corrupt all palette graphics data in a game so that all colors are red. The graphics renderer will read that corrupted data and as a result, draw the entire screen red. The corrupted memory is read, and you can see the results, but it is never executed.
If it were executed, then you'd be using the corrupted data as assembly code. Let's say I corrupted a block of 3 bytes of memory to "4C0000". If the graphics renderer reads it (expecting a 24-bit color), then you get a red color. If the game executes it (let's say it's a 6502 processor), then you'd get "jmp $0000" and the game would probably reset, crash or go haywire.
See the difference?
Dyshonest wrote:
By your example what does the infamous MissingNO. glitch constitute as?
It starts to corrupt and execute parts of the memory that it shouldn't, including some parts that are just outright corrupted by the glitch.
The missingno glitch is a perfect example of corrupted memory being read: the game expects to read a valid pokemon index, but it isn't getting one, so missingno. is what you get.
Missingno has its share of further memory writes as well, such as having an invalid "seen" byte that actually causes it to poke into item memory. And again, that memory corruption is something you see and know about when you have increased your amount of Rare Candies or Master Balls by 128, but still no RAM memory has been executed.
http://www.youtube.com/Noxxa
<dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects.
<Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits
<adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
It actually strikes me that you could probably design an emulator to detect arbitrary code execution, by seeing if any bytes that are executed have been modified since the start of the game. Many/most games don't use self-modifying code (I remember having to patch JPC-RR to emulate self-modifying code correctly for NetHack; before then, its emulation of self-modifying code was broken and nobody noticed, which is a good argument that it's something that rarely happens "legitimately").
EDIT: You could make it even more reliable by only detecting if the opcode had been modified, allowing modification of bytes that represented arguments to opcodes without triggering the ACE detector. That would handle something like half the uses of self-modifying code that are useful in practice, and still make ACE impossible.
This is also why I'm so much against preinitialized RAM, incidentally; it means that arbitrary code execution doesn't require any setup to specify the code to execute, it's there already.
Yes, using emulators in recompiler mode, if they have one, already makes ACE not work most of the time. Basically, emulators can gain speed from not reading the original byte code at all while running the game, but converting it to x86/x64 machine code only once, then keep executing that converted code only. So to detect ACE, just have it run in recompiler mode and watch it not work. ;p
Edit: That's a description of a very crude recompiler mode. A more advanced one would detect self-modifying code and adapt, but at the cost of speed, which was the reason to go recompiler mode in the first place. So that arguably defeats part of the point. I just wanted to point out that these kinds of ideas of detecting ACE are not entirely new at all.
A lot of games execute RAM as part of normal operation. For example, interrupt vectors might point to a jump instruction in RAM. Games on systems that don't use cartridges will necessary be loaded into RAM, and will probably load different overlays at various times because the entire program does not fit in memory at once. Detecting writes that modify code and dealing with it is much faster than not recompiling at all.
Detecting ACE might not always be trivial, but it is trivial to define it. An ACE run must execute arbitrary CPU instructions that are input by the player. I don't see how "code execution" could possibly be subject to such enormous misinterpretation.
The way you described it:
"Page 55 reads:
Turn the dail to have running water."
A lot of people have been found in studies to actually read typos as the world they're an error of, and oftentimes do not notice that there WAS an error.
The way it happens:
"Page 55 reads:
Turn the elegant to have running water."
What are you on about? He gave you a perfectly clear example of the difference between reading and doing something.
So, are you really claiming that if I ask you to read something from a book aloud for me, or if I ask you to read something from a book and then do exactly what the book says, that's technically the same thing?
Joined: 4/17/2010
Posts: 11475
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
HHS wrote:
So, are you really claiming that if I ask you to read something from a book aloud for me, or if I ask you to read something from a book and then do exactly what the book says, that's technically the same thing?
Yes, as long as one has no idea of what "doing" means. Instead of doing research, one prefers "imagining". So he imagines that his idea of "doing" matches the real thing, and it's not up to real people to disappoint the belief. Solipsism requires little analysis effort, hence weak people love it so much.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
So, are you really claiming that if I ask you to read something from a book aloud for me, or if I ask you to read something from a book and then do exactly what the book says, that's technically the same thing?
His example specifically implied that the instructions are to be read and executed, NOT specifically read.
My counter example specifically stated that minor errors, like a typo, are generally not going to stop someone from being able to execute the read instructions. (a "minor" memory corruption, if you will)
Reading the instructions is pointless if it has no way to execute them.
So, are you really claiming that if I ask you to read something from a book aloud for me, or if I ask you to read something from a book and then do exactly what the book says, that's technically the same thing?
His example specifically implied that the instructions are to be read and executed, NOT specifically read.
My counter example specifically stated that minor errors, like a typo, are generally not going to stop someone from being able to execute the read instructions. (a "minor" memory corruption, if you will)
Reading the instructions is pointless if it has no way to execute them.
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
Dyshonest wrote:
So, are you really claiming that if I ask you to read something from a book aloud for me, or if I ask you to read something from a book and then do exactly what the book says, that's technically the same thing?
His example specifically implied that the instructions are to be read and executed, NOT specifically read.
My counter example specifically stated that minor errors, like a typo, are generally not going to stop someone from being able to execute the read instructions. (a "minor" memory corruption, if you will)
Reading the instructions is pointless if it has no way to execute them.
I'm guessing you missed my post where I explained to you how it works and how you have been misusing terms such as (memory/data) reading and execution?
http://www.youtube.com/Noxxa
<dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects.
<Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits
<adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
His example specifically implied that the instructions are to be read and executed, NOT specifically read.
My counter example specifically stated that minor errors, like a typo, are generally not going to stop someone from being able to execute the read instructions. (a "minor" memory corruption, if you will)
Reading the instructions is pointless if it has no way to execute them.
Ugh. In that case, I have a book recommendation for you: http://www.amazon.com/The-Little-Book-Kill-Yourself/dp/1938753089. Are you able to read the front cover and then tell us what it says without actually doing it? (Note that I take no responsibility for what might happen if you insist on sticking to your definition of reading.) We have no way to determine the title of the book unless you actually execute it, right?
Or, if you receive a statement from your bank informing you of your current balance, and your ten thousand dollars were somehow changed to ten billion dollars, we would have no way of noticing this change from watching your reaction, right?
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
Spikestuff wrote:
Welp, now I can say it's gone a bit far... to tell someone to "kill themselves".
That actually has everything to do with the argument at hand.
http://www.youtube.com/Noxxa
<dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects.
<Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits
<adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.