I have remained out of this debate as I feel the conversation is going in circles. At this point, I think everyone has said their piece. Going forward, why don't we just talk about game play only and stick to running this game to sub 9:30...
I was going to let sleeping dogs lie, but here's one last poke at this. I'm going to give a short version and a long version.
The short version
We should all be friends. The category split was because there wasn't a lot of clarity about how the times might have differed between versions and to get input on how people felt on emulator vs console and keyboard. There wasn't any intention of alienating anyone or creating a faction in the community. I've talked to Hurblat about merging the leaderboards together and just listing the platform alongside of each time. TheMexicanRunner has posted the best time for the game and Heidman's got the best time on console and let's put the other semantics to rest. TMR and Heidman are both incredible at the game and they've done more than their share to push the time down. This thread is about people having a friendly competition and pushing it to the limits.
======================== Long version (because I want to put some stuff to rest)
Q: Why were the times separated on the leaderboard? A: Because we were unsure of the timing differences between console and emulator. Hurblat wanted to get everyone's input on different controller types (regular controller/vs keyboard).
Q: Why is playing on emulator a big enough deal to be a separate category? A: It would be nice if everyone would play on console because we wouldn't really have to worry about little stuff when making comparisons, but that's not an option for everyone. I understand that. If we want to be able to compare times and be as sure as possible that they are fair and comparable someone has to do the actual work of figuring out what factors come into play when comparing times and how important those factors might be. The biggest concern with comparing console times to emulator times is whether or not there are any significant timing differences between emulator and console and it has to be determined on a case by case basis. The emulator needs to run the game at the same speed the console does and it needs to lag in the same places console does for the same duration. To be precise, we take the emulator into consideration and even how well the particular emulator handles the game into consideration. It's not always just splitting hairs or semantics. The current 2 player TAS of Contra III was done on Snes 9x 1.43 and it clocks in at 13:03. The RTA speedrun that Hurblat and I did which clocks 13:38. If the same inputs were from that TAS were to be done on a console the time would be either on par or slower than our time. In Snes 9x 1.43 the game does not lag at all in a certain spot, but it can lag for up to 17 seconds on console. It was severe enough that we actually had to kill off player two to avoid lag. For SNES emulation, some emulators are just better than others. ZSnes was terribly inaccurate, Snes 9x 1.43 was very inaccurate. Snes 9x 1.51 was fairly accurate and BSnes/BizHawk/Higan is about as accurate as we can get right now. That's an extreme example and I know we're talking about the NES and not the SNES. The point is that emulators can make a difference so we wanted to check to see what those differences were. Going into this, I didn't know earlier if there was a similar sort of tier as far as accuracy with Nestopia, ie Nesticle > Nestopia > FCEUX > BizHawk > puNES etc. and how much an emulator's "inaccuracy" would affect the actual time of a speedrun.
Q: Your example of a timing difference was from SNES, but we're talking about NES. But what about Nestopia is it accurate? Do you get an advantage by playing on it or not? A: From what I've researched Nestopia is accurate. Let me explain where I got that info from and how accurate accurate is. The website for Nestopia is a stripped down shell and it’s not particularly useful for technical documentation. Wikipedia reports that the emulates the NES processor with cycle perfect accuracy. Richard Bannister is a software developer specializing in emulation and he corroborates Nestopia's accuracy. Bannister didn't do work on the emulation core, but did handle the port to OS X and he's a pretty reliable source. http://bannister.org/software/nestopia.htm Bannister also confirms cycle-exact simulation. That all sounds fine, but what about actual testing? As far as I've tested, Nestopia is highly accurate. In testing I've found that it's been able to keep sync with the console running the demo for over half an hour. The demo is not a perfect test, but it's pretty good one because every time the demo loads the game will lag between 15-18 frames and there are some lag frames caused by a large number of movement and sprites overload in the actual demo. That means any timing differences should be negligible and shouldn't manifest affect the timing of an actual run of Contra by more than a few frames. Slight CPU fluctuations or changes in background processes can cause its emulation to pause or stutter, but its NES core is extremely accurate. There are better tests. To be more precise about it, I'd need to record a long movie with it and export it to AVI. I'd then capture a console recording of a similar length and compare frame length of the movies between the two. Nestopia's AVI export is terrible and doesn't allow for compression with no quality loss. As far as I'm concerned running on Nestopia won't make your speedrun any faster than it would otherwise have been on console. To be more scientific about it as Patashu says we'd create a movie on Nestopia and frankly I just don't care that much.
In light of this information, Hurblat would you mind merging the categories back and noting the platform along with the run time?
Q: Why did it take so long to figure out if Nestopia is accurate? A: I'm a bit tight for time these days and I haven't had a lot of the time or energy to test it. There are a few things about Nestopia that rubbed me the wrong way. The problem is that Nestopia hasn't been maintained since 2008. Researching how accurate Nestopia's NES core emulation is becomes a lot more difficult than researching something that's currently maintained. Its user forums are down and while the code repository is available I'm not up to reading through its source code. You have to be a bit more discriminating than just using google because you'll find people are saying it has excellent accuracy but that's relative to a certain context. In 2008 the emulator's release notes make notes of its accuracy I have to figure out if that's relative to everything else at the time or a comment on its accuracy in general. Other emulators like FCEUX and BizHawk are actively maintained, documented, and people who have worked on it are available for questions. So I guess what I'm saying is when I saw that Nestopia was used I was a little surprised. I'm hoping everyone switches to BizHawk but since it can be such a pain to install perhaps use FCEUX?
Q: So if Nestopia is so accurate doesn't that make the times comparable to console? A: You're really really close, but it's never going to be perfect. If you're running on emulator, you should probably be recording a movie or AVI. Timing a run this way will give you a perfectly accurate frame count. With exact precision you can tell when you gain control of the character and when you lose control. If you are using WSplit or some other timing program you can get within a second of the time within some skill, but you don't have accuracy down to the frames. When you are recording from console, you are at the mercy of the analog capture process and that may introduce dropped or inserted frames. The capture program and the framerate you are using comes into play. Many people use AmarecTV. Amarec is hard locked at 29.97 frames per second and may add time to a recording. Capturing in VirtualDub at 30.0494 frames with no hiccups will give you the most comparable results to compare times against a run done on emulator. Yes, that also means that two people who do a speedrun on console that both clock in at the same time will have different times on their recordings if they capture at different framerates.
Q: What about this controller vs keyboard business? A: I think we can all agree the type of controller you use can have an impact on your performance, it's an open question about how much and whether that difference is fair or not. I used the NES dogbone controller at AGDQ this year and you'll see some of the worst spread rhythm in Contra history in my run. Switching to the brick controller made a huge difference and I actually started to look like a competent Contra runner when I started using the keyboard on my Macbook. This brings up a question. It might be easier to get spread rhythm when pressing buttons on a keyboard as opposed to mashing on a controller. If it is, do you care? How much? There's a lot of complexity and technique that goes into getting spread rhythm in this game and it is physically demanding so this strikes me as being more than just a personal preference. If we were talking about speedrunning a game like Beethoven's 2nd (shoutouts to Shrimp!) I really wouldn't care if someone used a keyboard or a controller if we were comparing times. Maybe I'm wrong and it doesn't matter either way. Maybe it helps one person, but for another person it's the same. If it doesn't matter to you, please understand why some people might care. There's not really a scientific way to do this sort of testing because it's going to get pretty subjective. Make your own call on this. You might have the intuition that keyboard is easier for mashing or you might not. Some people care, some people don't. I feel like we should track what people are using so the people who care can take it into consideration and the people who don't can ignore it.
In closing If you're upset about the category shifting I'm really sorry. For the most part, everyone has had a chance to offer up an opinion and it’s been pretty civil so I hope there are no hard feelings. The category change was just a way of tracking things and it wasn't meant to cause a rift in the community. If you're thinking of giving up speedrunning the game over this, then I hope you'll reconsider because speedrunning Contra is just awesome by itself and we'd hate to lose you. Please remember that competition makes everyone better and the more people we have working on a game, the better the strategies we come up with. I had thought I was pretty close to maxing this game out, but TMR had some new ideas that ended up cutting off some time and adding to consistency.
Going forward, I'm going to ask that unless you have something else to add to what I've posted above, please keep the focus on your progress on the game or new things you've found. If you have an issue with a specific person, contact that person directly.
Thanks, -K
P.S. TMR great job on the new video. Catching a forward momentum boost from two mine carts combined with the more efficient way you're collecting barrier is definitely something I didn't appreciate before. Also your production quality definitely blows mine out of the water. P.P.S. I'm on to you Sinister.... P.P.P.S. Yeah I know Nestopia is being resurrected by someone else, but it's just for some UI/stability fixes and it's not touching the NES emulation core.
On topic, I loved your long post and agree with pretty much everything said. I hope this can just be settled and people can move on in smashing this game.
For me personally, I can mash faster on keyboard than controller, and yes dogbone is god awful for mashing. But there are so many diff types of keyboards, I bet I would mash slower on some and faster on some. Even controller to controller is not completely reliable. If I was going for the best possible time I would play on emulator. If I was trying to submit to SDA I would play on console. If I was just streaming attempts for fun I would play on whatever was easiest with my streaming setup. Like the answer to most questions "it depends."
For the people mashing faster on keyboard than nes controller, have you tried using a claw grip? (setting the controller down on your lap or a table and pressing the buttons like you would on a keyboard) I don't play contra, but this helps me mash as fast on my controller as on keyboard in megaman.
Just so you know, the claw grip is using your thumb and bringing your index finger and/or middle finger over the side to press other buttons. I do that when I play MMX2. Caleb Hart does this as well. You can see him do it here (he is sitting on the right).
Started running this a bit when I was home again - got two sub 11's both with a death in hangar. Hopefully next time I get back (Dec. 4th) my time will come down some