Post subject: Playback/recording run-viewing controllers
Joined: 3/11/2008
Posts: 583
Location: USA
DRybes, here wrote:
In theory someone could create a hardware device and program interface that could read FCM (or other) files over a serial port and operate an accurate cycle to feed input into an NES controller port, thus effectively running a TAS on a console. In practice there are probably many more ways than all the ones mentioned so far in which such a setup could desync. Perhaps a bit irrelevant but I'm wondering if anyone else ever imagined that happening (ignoring for a moment all the complications that would arise).
This same idea has been kicking around my head for a few months: a device you could just plug into a NES/SNES/other console and have a speedrun/TAS play when you turned on the console. It was not directly pertinent to the topic it was in, I figured I'd make another topic to discuss them. You could also mod a controller to save off input as well as play back, though you can't accomplish basic emu features like savestates or advanced ones like frame advance/rerecording without intrusive system modification. ...actually, you could inelegantly achieve savestates/rerecording by resetting system or cycling power and playing back the movie to the point you saved, and then recording onward. As far as how to decide when to advance the input frame, I think that the vertical sync the NES outputs in its video signal would be one pick as an easy-to-patch-into signal. Obviously these concepts apply to other systems as well, NES would just be one starting point... A point raised in the thread brought from is nastiness arising from multiple versions of a game, and you would have difficulty in movies that require resetting of system. Thoughts?
Former player
Joined: 6/25/2004
Posts: 607
Location: Maine
Now that would totally be a boss idea, but there's a whole crap-ton of things to consider as well that isn't necessarily hardware-based. I know I've heard that lag that isn't present in an emulator is present on a console. I don't recall where exactly, but I quite clearly remember hearing that somewhere. That would throw some videos out of sync just like that, possibly.
Joined: 4/11/2006
Posts: 487
Location: North of Russia :[
same movie plays differently on different emulators sometimes... same movie plays differently on different versions of the same emulator sometimes... same movie plays differently on the same version o an emulator on different PCs sometimes... and you still expect it to work on real hardware?..
Joined: 3/11/2008
Posts: 583
Location: USA
Well, you don't have to worry about quality of emulation or anything that goes on in the background of the emulating PC, which would account for many of those issues. There aren't any real options on the NES hardware, aside maybe from which cable channel you're outputting to, and I rather doubt that that'd cause a desynch. It's still just an idea.
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
Unless you have access to the NES hardware directly, the following is practically infeasible:
  1. Savestates
  2. Resets
  3. Frame advance
And without access to exact timing of when the NES turns on, your whole idea becomes pretty impossible to. It also seems extremely unlikely the TAS would work between consoles (I mean, not all hardware can be 100% identical... right?)
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
Former player
Joined: 12/5/2007
Posts: 716
Raiscan wrote:
And without access to exact timing of when the NES turns on, your whole idea becomes pretty impossible to.
The thing is that a fcm file lacks the information on what frame the console actually asks the controller for its buttons the first time. The protocol for querying an NES controller is quite simple and thus it's easy to emulate one on a microchip. But there's the problem that the console might not always ask the controller about its state and thus you can't count the frames the game has actually run. So you can't know which input you're supposed to give to the console. Yet if the console really did ask the controller on every single frame, no matter if doing so would change something or not, then it's just a matter of how much memory the chip has. This might be a thing NES emulators "feature", that the controller input is given to the console although it didn't ask for it.