Post subject: Curious about TAS and cycle-accurate Snes emulation
Joined: 1/23/2012
Posts: 82
With emulators like lsnes and BizHawk, which use Bsnes for the Snes core, seems weird to me. Using a cycle-accurate emulator to do things that real hardware would not be able to do without using frame-by-frame re-recording and frame advancing. I don't see the reason to necessitate cycle-accuracy for exploiting things you normally wouldn't be able to do on a real console; tl;dr - why is super accurate emulation necessary to do TASing in Snes when real consoles have nothing to exploit? I haven't done much in the way of TASing, the only emulator I used was Snes9x 1.52 rr (which never really took off, nor did anything based off of 1.53). I'm biased since I'm not fond of the system requirements of Bsnes and any emulator based off of it, despite having a decent CPU (Core i5 3570). I'm overwhelmed buy the GUIs in lsnes and BizHawk, as I don't know how to use them, like, at all (sad, I know). So, yeah, I'm confused as to why Snes9x will eventually be deprecated, if anything, 1.51 and 1.43 should be as they are far more inaccurate than 1.53 (in pretty much every aspect, esp. the S-SMP core). I mean, with TAS, you do things real hardware was never meant to do, exploiting glitches, frame advance, re-recording, why cycle-accuracy? Plus I tried configuring the N64 core in BizHawk, the plugin settings crashes the emulator.
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
If a TASer is TASing on an emulator which isn't doing what the actual system would be doing, they are not TASing any recognized and existing game. They are, in that case, TASing some broken program brought into existence by haphazardly reading a ROM copy in a way that was never intended by anyone who developed the game associated with that ROM file's original cartridge. In essence, TASing with inaccurate emulation is TASing nothing real at all. TASers want to avoid this situation in order to show what's actually possible in a game played by a super-human player who can keep memory values, registers, etc. etc. in their head while pressing exactly what they want to press at exactly the right times. It's an interesting concept, and the results can range from being exciting on a theoretical level to downright hilarious, with the viewer assuming that the situation could have actually happened in the real game with the right sequence of input. Also, a TAS on an inaccurate emulator may do something that is not actually possible in the real game, which could cause much frustration for, say, an unassisted speed-runner trying to perform some trick they saw in what they thought was a legitimate TAS.
Joined: 1/23/2012
Posts: 82
Lex wrote:
If a TASer is TASing on an emulator which isn't doing what the actual system would be doing, they are not TASing any recognized and existing game. They are, in that case, TASing some broken program brought into existence by haphazardly reading a ROM copy in a way that was never intended by anyone who developed the game associated with that ROM file's original cartridge. In essence, TASing with inaccurate emulation is TASing nothing real at all. TASers want to avoid this situation in order to show what's actually possible in a game played by a super-human player who can keep memory values, registers, etc. etc. in their head while pressing exactly what they want to press at exactly the right times. It's an interesting concept, and the results can range from being exciting on a theoretical level to downright hilarious, with the viewer assuming that the situation could have actually happened in the real game with the right sequence of input. Also, a TAS on an inaccurate emulator may do something that is not actually possible in the real game, which could cause much frustration for, say, an unassisted speed-runner trying to perform some trick they saw in what they thought was a legitimate TAS.
Fair enough, at least I know the reasoning behind it now ;) With that said, are there configuration guides for getting lsnes/BizHawk up and running for someone relatively new to TASing? I saw that it comes with a manual.txt, but uh, yeah, I got lost immediately, as pathetic as that sounds. I admit that I have no clue what I'm doing with these other TASing emulators, at all. I don't want to do anything super complex, but a basic speedrun of completing a game, like Contra 3: The Alien Wars using the auto fire/alternate fire trick (switching between weapons back and forth with an auto fire kills bosses and other enemies very quickly). Jumping, running, getting the game done as quickly as possible. Something to that effect, nothing too fancy. The other matter of concern is the CPU resources and the CPU intensity of either emulator. I don't want to overheat and kill the CPU during the TAS, as I get paranoid that the Bsnes-based Snes core will be extremely grueling on it if that makes any sense. I'm just not familiar with what techniques that can be done that are effective but mostly simple. If this is the wrong section, I apologize.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
The most important thing about using bsnes-derived emulator core for TASing is that it allows for Console Verification. If the timing of lag frames, loading times, etc is even slightly incorrectly emulated, then the game may not proceed the same on emulator vs on console. Console Verification, playing back a TAS on the real console, was required to showcase Masterjun's Super Mario World 'executes arbitrary code' TAS at the AGDQ2014 event live, for example. If your computer can't handle Bizhawk at all, though, note that we still accept snes9x 1.5x TASes for SNES.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Emulator Coder, Skilled player (1141)
Joined: 5/1/2010
Posts: 1217
Patashu wrote:
The most important thing about using bsnes-derived emulator core for TASing is that it allows for Console Verification.
Many SNES games just can't be verified, no matter how good emulation.
Joined: 1/23/2012
Posts: 82
Patashu wrote:
The most important thing about using bsnes-derived emulator core for TASing is that it allows for Console Verification. If the timing of lag frames, loading times, etc is even slightly incorrectly emulated, then the game may not proceed the same on emulator vs on console. Console Verification, playing back a TAS on the real console, was required to showcase Masterjun's Super Mario World 'executes arbitrary code' TAS at the AGDQ2014 event live, for example. If your computer can't handle Bizhawk at all, though, note that we still accept snes9x 1.5x TASes for SNES.
I'm sure my Core i5 ivy bridge can play BizHawk, I just get paranoid about very CPU-intensive programs. I know Snes9x is still accepted (1.53 being the most accurate version thus far), utilizing all the techniques is something I've yet to do, if that makes sense. How long Snes9x will still be accepted for remains to be a mystery.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
Ilari wrote:
Patashu wrote:
The most important thing about using bsnes-derived emulator core for TASing is that it allows for Console Verification.
Many SNES games just can't be verified, no matter how good emulation.
Because of Uninitialized RAM, right?
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Emulator Coder, Skilled player (1141)
Joined: 5/1/2010
Posts: 1217
Patashu wrote:
Ilari wrote:
Many SNES games just can't be verified, no matter how good emulation.
Because of Uninitialized RAM, right?
That, other things being uninitialized and CPU<->SMP clock jitter.
the_randomizer wrote:
How long Snes9x will still be accepted for remains to be a mystery.
I'm sure full snes9x deprecation will be done like snes9x 1.43 deprecation, so should be safe to start a run. Also, as to when it starts, it seems like far off.
Joined: 1/23/2012
Posts: 82
Ilari wrote:
Patashu wrote:
Ilari wrote:
Many SNES games just can't be verified, no matter how good emulation.
Because of Uninitialized RAM, right?
That, other things being uninitialized and CPU<->SMP clock jitter.
the_randomizer wrote:
How long Snes9x will still be accepted for remains to be a mystery.
I'm sure full snes9x deprecation will be done like snes9x 1.43 deprecation, so should be safe to start a run. Also, as to when it starts, it seems like far off.
The problem now is knowing how to make a semi-decent TAS, of which I know nothing on how to do or what guides to find for techniques, like say, a speed run of Contra 3, I know of a few techniques like the rapid-fire swapping for weapon changes (primary to secondary back and forth, etc), but for actually doing it fast, yeah, I need assistance with that, I use Snes9x 1.53 quite a lot.
Joined: 1/23/2012
Posts: 82
So, are there any guides on using Snes9x for TASing, i.e techniques for getting platform/shooting games done faster, etc?
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
the_randomizer wrote:
The other matter of concern is the CPU resources and the CPU intensity of either emulator. I don't want to overheat and kill the CPU during the TAS, as I get paranoid that the bsnes-based SNES core will be extremely grueling on it if that makes any sense.
Look at the emulator's CPU usage in Task Manager (or better yet, Process Explorer). The bsnes core will always use only 1 CPU core at a time (it's a single-threaded program), so it'll never cause more than 100/(number of CPU cores) percent CPU load. If you're still worried, use SpeedFan to monitor your PC temperatures (and maybe even control the fans). If you're still worried because you see abnormally high temperatures, improve airflow or try to change the thermal paste. Btw. BizHawk uses the "compatibility" core version of bsnes, so it's not as intensive as it could be. ;)
Joined: 1/23/2012
Posts: 82
creaothceann wrote:
the_randomizer wrote:
The other matter of concern is the CPU resources and the CPU intensity of either emulator. I don't want to overheat and kill the CPU during the TAS, as I get paranoid that the bsnes-based SNES core will be extremely grueling on it if that makes any sense.
Look at the emulator's CPU usage in Task Manager (or better yet, Process Explorer). The bsnes core will always use only 1 CPU core at a time (it's a single-threaded program), so it'll never cause more than 100/(number of CPU cores) percent CPU load. If you're still worried, use SpeedFan to monitor your PC temperatures (and maybe even control the fans). If you're still worried because you see abnormally high temperatures, improve airflow or try to change the thermal paste. Btw. BizHawk uses the "compatibility" core version of bsnes, so it's not as intensive as it could be. ;)
The airflow is actually quite good, a large 200 mm fan on top, two big fans for exhaust and intake, so it never gets super hot, but the fans do speed up a bit to keep cool. As for thermal paste, I use Arctic Silver compound, never had any issues at all with that. Now what can I do about TASing techniques for game completion that don't require the use of scripts (I don't know jack squat about them), is it even possible? \ I don't even know how to properly config the bloody thing, it's too overwhelming, too many things that need to be configured. I'd personally rather use Snes9x 1.53 ,but that's me.