Forums  /  Lizard  /  RNG manipulation
  rainwarriorrainwarrior

For anyone that wants to investigate the random number generator with an emulator, use a RAM Watch feature to look at a 2-byte value at $0044. This is the seed value for the RNG. (Two bytes at $44 and $45.)

If you can start the game with a Left + Right + Start press, the RNG will be reset to a known state.

For a TAS this will let you easily see what does or does not affect the RNG seed, but for a live run, theoretically you could control the RNG for maybe the beginning segment of the run, depending on how long you can maintain perfect synchronization with it.

 
  SmartballSmartball

Left + Right isn't possible on console though regrettably.

 
  rainwarriorrainwarrior

The console will accept it as input, but yes it's not possible to enter on a single normally functioning NES d-pad. There are a couple of ways to do it, though.

On the Famicom, you can use a Famicom expansion port controller adapter and use 2 pads at once. I build the one in this video but Hori and other companies made commercial products that worked the same:

Unfortunately the equivalent expansion connector on the NES is sealed away under a plastic tab and there aren't really any commercial products that would plug into it (though I've seen one or two things made for it by the homebrew community).

Could also just modify the existing controller in some way, .e.g. an extra button that gives an extra left push, or even just cutting the d-pad in half (if you like destroying things).

Otherwise you can try it in an emulator that allows Left + Right, at least. In retrospect I kinda wish I'd left some access to this same feature by the second controller instead of this method. I had only really considered it as a need for TASbot (which was happily confirmed to work a few months ago) but maybe it'd have been fun to try and exploit for live speedruns too if it was more accessible.

...though also I'm not even sure how possible it is to keep up synch with it. Will require a sequence of rooms that are frame-perfect, at least from the POV of the RNG. The thought is something like this:
1. Hold Left + Right + Up before hitting Start and immediately releasing Left (before the player finishes fading in). This should get you to the door of the first room in a perfect number of frames.
2. During the fade, hold hard left. This should let you fall through the next room, and walk away from the save point below also in a perfect number of frames.
3. Etc. I'm not sure how long this can be kept up. Probably not possible to reach a boss this way?

Either way, though, you can inspect the value in emulators if you want to learn about what can or can't be used to adjust the RNG, which could be useful knowledge for both TAS and live runs.

 
  SmartballSmartball

I can't think of any NES RTA speedruns that allow L+R to be honest since it's not possible by conventional means.

 
  rainwarriorrainwarrior

Well, that question is moot anyway 'cause I don't yet have a route in mind that would make it worthwhile. 😉