TASVideos

Tool-assisted game movies
When human skills are just not enough

Console Verification Guide

Introduction

This guide will explain how console verification works and take you through the steps to play back movies on the actual console. This page assumes you are already knowledgeable about playback of movies in the emulator. If not, consult Emulator Resources for advice on how to set that up first. You will also need some knowledge about electrical circuits, and the required hardware (components, console, games, etc).

NES

An NES controller is simply a shift register, with the 8 inputs being the 8 buttons on the controller. When a game is looking for input from a controller, a pulse is sent to the controller. When the shift register receives this pulse, the state of the 8 buttons are read in and stored until the game reads them in one button at a time. Some games read in the button state once per frame, while others read them in multiple times per frame. A game is not required to read in input every frame however, and will commonly not read in input for some frames to allow time to handle other things such as changing the screen. Due to a hardware problem, using the PCM channel of the NES to output sound causes random invalid button presses to be read in. Games that use this channel commonly read in the button state multiple times to find which buttons are valid.

In FCEUX input from the user is read once per frame and "held" until the next frame. The emulator doesn't care how many times per frame the game asks for input; it gives it the same input each time in the same frame. The emulator also accepts and saves buttons which are pressed even when the game doesn't ask for them.

To play back movies on the console, the recorded buttons need to be modified to remove buttons pressed when the game isn't asking for any. The remaining buttons need to be pressed and held for the correct frame for the console to read them in correctly. To accomplish this, a micro-controller was wired to a shift register and the pulse from the console was sent to both the micro-controller and the shift register. With each pulse, the micro-controller changes the "button" signals sent to the shift register, according to the movie uploaded to it.

To build this bot, see the guide for the NESBot. The basic steps, based off the article, are as follows:

  1. Build the circuit given in the guide.
  2. Load FCEUX and the rom for the game you want to use.
  3. Load the Lua script given in the guide and run it.
  4. Download the .fm2 file for the movie you want and start playback in the emulator.
  5. Let the movie playback until completion or for as long as you would like, then stop the Lua script.
  6. Upload the file the Lua script creates onto the bot.
  7. Load the game cartridge into the console and make sure it starts correctly.
  8. Activate the bot and turn on the console.

SNES

Since the SNES inputs system in the same way as the NES, a bot based off the NESBot is being worked on. No games have been tested yet.

Combined RSS Feed
ConsoleVerificationGuide last edited by micro500 on 2011-02-28 04:06:13
Page info and history | Latest diff | List referrers | View Source