Hello.
I'm new here and I'm sure no one has asked a question like this before (I did have a look and didn't see anything like this), and I'm pretty sure you guys know the answer, but from someone who uses emulators JUST to play games normally, I was wondering... Most of the bugs and glitches in some games are usually left due to lax games testing (I know, I used to work for a games publisher), but other stranger glitches... Did anyone ever wonder if these glitches came into effect BECAUSE of emulation? Most of the popular games like Mario, Sonic and Mega Man have bugs in their console counterparts I know (an example I can give is Sonic 3 where when I played as Tails alone in Icecap Zone Act 1, on the ice slides there were times the screen scrolled quickly downwards which caused Tails to die. I don't know why, but it's ALWAYS happened to me and I like playing as Tails alone), but some others I've never noticed when the original version is played.
Is there a source out there to find out if these bugs really exist in the game itself and not just because the game doesn't run as perfect as if it was played on console? It's OK if people are doing TASes just for entertainment sake, but there are people out there that feel it's not exactly that great since it feels like, well... cheating. Getting the game to work the way they want it. I had a (not heated) discussion with a friend about this (personally, I like 100% runs as it shows FULL mastery of the game in question), and I like to hear from people who have accomplished speedruns and see what they think. If anyone would be inclined to answer, I'd appreciate it.
Joined: 4/11/2006
Posts: 487
Location: North of Russia :[
I am pretty sure emulation is not the guilty side in those glitches :)
Different emulators are made by different people with different methods. If all of them reproduce the same glitch on the same circumstances then it has to mean something. Also, some glitches are found by disassembling rom to understand how does it work. Therefore they ARE in game already. It's rarely done though. I believe you can turn on assembly window and trace every operation in rom, done by emulator during glitch and see that it is indeed part of game and not emulator.
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
I've never heard of a game not working fine on an emulator, besides graphics or sound issues. The game's mechanics always works, or else things that aren't bugs would also not work, right? when we get 100 coins we get an extra life, when the character steps on the ground it holds him from falling, when you press A the character jumps... So if these work exactly like in the real game, then the bugs must work too.
I'm just using my logic, i'm no programmer.
It has been asked.
Specifically, a thought "are you sure this glitch is in the game and not caused by the emulator" has been put into words at least two times that I can remember, on these forums. Maybe you didn't find it because the instances have been specific to some particular game.
The others already answered you, so I'll add nothing.
If you need some specific information about Mega Man glitches, which I'm best familiar with, I'll be glad to help you.
Joined: 4/11/2006
Posts: 487
Location: North of Russia :[
In fact it's possible that some operation is emulated carelessly, ignoring some detail - so it works fine almost all the time except some critical points. But I really doubt there are such errors in emulators we use.
By the way, vba-rerecording hangs on transitions to black screen in Hamtaro. It would be funny if fix to this would make for example sonic advance run not working XD
I'd also estimate at least 95% of the programming errors to be found and/or later reproduced to a certain extent on the console versions of the games. Some of the glitches require just too much precision to be reproduced on a console, but they're usually well explained by looking at the memory content of the game or by disassembling it.
However, I can name at least one game, whose console glitches don't work [correctly] on the less accurate emulators, but that example is kinda the opposite of what Syreeta is saying. :)
The problem with that is how does anyone know without playing the original and then a rom? Not everyone can get hold of the games they used to have as well as those not even released in their region. Most stupidly (like me) sell their old classics on in readiness for the newfangled games and consoles. And people charge a lot for for the classics knowing that people would pay for that nostalgia. That's the main reason I use emulators anyway.
FODA, I obviously understand that the basic mechanics of a game would work, but it's the "extra" things people discover I'm on about. I mean, has anyone ever tried recreating the glitches on console? I think TASing would be even more approved if the games were, how can I put it, "researched" on an emulator and then finally played in real life on console with the information obtained. I'd like to do that myself, but I am no where near as determined as you guys are to carry it through. I already have a hard time sculpting video game characters, let alone making them do crazy things!
I believe what FODA is saying is that if there is behavior caused by faulty emulation, the chances of it only introducing one inconsistency are quite small - other things will be incorrect, as well (most likely).
I believe that the major glitches found here are not due to emulation, however there are instances of differing luck manipulation on different emulators to very small degrees. So the type of issue does exist, but not to an extent that would falsify the content here. I think.
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
So you're saying that with emulation, a game's odds COULD be put in a player's favour (ie. something like changing the enemies' AI or causing basic enemies from not appearing at all), but it's something that people who make TASes here don't do as it's against the rules of this site or not possible?
zefiris: Is that topic still active?
"Changing" enemies' AI and other parts of the read-only code is impossible. However, if (by the game's design) all that is required to abuse their behaviour algorithms is player's input, it is strongly encouraged to do so.
Y'know, like if you're supposed to be attacked at a certain point, you could somehow confuse the game's AI not to do so. I'm sure I've seen that a few speedruns thought I can't remember if they were emulated or not or even how they did it.
zefiris: Thanks, I'll check it out.
Syreeta, I don't know, I've only seen very very minor differences between different emulators, not compared to the hardware. It's equally likely that we are handicapped compared to the console. But any large bugs that would cause an extra glitch would cause other problems as well, and be bug-fixed through improved emulation, most or all of which happened before TASing really got going.
(Unless you're talking about N64 games, then we can include glitches like frozen white pause screens, because no one has the patience to wait for proper emulation)
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
Well regardless of that, I still think the people to take the time to do this are very creative and skilled people (like me). Plus, this is the ONLY forum I've been on where other members actually bother put a capital letter at the start of my name (I don't mind if you cut and paste). Keep up the good work guys! *^_^*
If I have any comments about TAS helping real playing, I'll post in the thread zefiris mentioned, I just found it. Thanks for the opinions.
So you're saying that with emulation, a game's odds COULD be put in a player's favour (ie. something like changing the enemies' AI or causing basic enemies from not appearing at all), but it's something that people who make TASes here don't do as it's against the rules of this site or not possible?
"Changing" enemies' AI and other parts of the read-only code is impossible. However, if (by the game's design) all that is required to abuse their behaviour algorithms is player's input, it is strongly encouraged to do so.
Y'know, like if you're supposed to be attacked at a certain point, you could somehow confuse the game's AI not to do so. I'm sure I've seen that a few speedruns thought I can't remember if they were emulated or not or even how they did it.
AI and luck manipulation are major parts of many TASes on this site. But they work through playing the game, not (as a general rule) through glitches.
For example, say you want to manipulate Metal Man, in Megaman 2, into jumping over to the other side of the room. You do this by walking towards him. If you stay over on the left side of the room, then he won't jump at you - he'll only jump straight up. That's an example of very basic AI manipulation. The AI is manipulated by knowing how it reacts to different situations and taking actions to ensure that the situation causes the behavior that you want out of the AI.
Luck manipulation is a different matter. Say that you're playing an RPG with random encounters. The random encounter code might look something like "Roll a random number between 1 and 255. If that number is less than 16, cause a random encounter." What you want to do is ensure that the random number generator makes a number greater than 16 when the game checks for random encounters. Many random number generators simply spew out a fixed series of numbers (for example, IIRC the Final Fantasy 6 RNG is simply a table of numbers that it cycles through). If you can force the RNG to engage in a situation where you don't care about the result, then you can "advance" the RNG towards a favorable value. In our hypothetical RPG, there might be a random chance to generate a puff of sand when walking on the beach. Thus, by walking on the beach at certain times, you could ensure that, when it comes time to check for a random encounter, the result is always favorable.
In some cases the RNG draws its values from theoretically uncontrollable things, like exactly when the player presses certain buttons. Since in a TAS we have precise control over that, manipulating the RNG becomes very easy. Other times, the RNG depends only on what frame it is; then, to get a good result, we just have to wait for the right frame. If you watch the Final Fantasy 1 TAS, there's noticeable pauses in combat while the TASer waits for the right frame to get a critical hit, or to force the enemy to miss (or both!).
Make sense?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Assuming Syreeta is still around, he/she probably figured out what I said ages ago. Which isn't to say that the information isn't useful, but there wasn't much point in posting it. And it's generally agreed that if you don't have anything useful to say, then you shouldn't say anything, at least outside of the off-topic forum.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.