Post subject: Copying luck-manipulation
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
The concept is, you take a speedrun that involves luck manipulation based on button-presses, and find the info about those exact button presses. For example, as I work on a pokemon Red run, I have to wonder about some areas. At one point, you have to manipulate an event with a chance of 1/5000 of occurring. I don't want to spend a month luck-manipulating this segment, so I'm wondering if luck-manipulation copying is 1. possible 2. considered legitimate at this site. For the 1st one, it's a matter of whether only button presses affect the algorithms (names, etc. might have effects) and whether you can reliably see every button press during the run. The second is just a matter of public opinion.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Mostly, it's futile. Anything that comes after you have changed the run, is invalidated by the changes. Especially when it comes to luck manipulation.(*) But you're free to try, there are no rules forbidding that. For example, I have inspected the previous runs' input to do through-wall tricks in SMB for use in my own runs. (But mostly ended up playing it myself.) Just don't copy entire movies, or even entire sections of the game, or you'll need to credit the copied author as the author of your movie :) *) What this means that copying luck manipulation probably doesn't work, because the luck is specific to the entire movie leading to that point.
nesrocks
He/Him
Player (246)
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
I don't understand what you mean by copying luck, but it's acceptable on this site as long as you have a movie file containing nothing but button presses running on a rom of an official version of the game.
Player (206)
Joined: 5/29/2004
Posts: 5712
Well, if you can disassemble the code and figure out exactly how to set up each random outcome to occur whenever you want it, good for you!
put yourself in my rocketpack if that poochie is one outrageous dude
Emulator Coder, Site Developer, Former player
Joined: 11/6/2004
Posts: 833
In reply to FODA: Copying a level which has random events may not work, since the random events are a function of the whole movie up to that point in time. So RNG(old start + cut) != RNG(new start + cut), depending on the implementation. I've copy/pasted an entire level of MMX successfully, but item drops changed. Luckily that doesn't affect the outcome until the boss fight. In the grand scheme of things, this is the exception rather than the rule. Had there been a miniboss with random behaviour, I'd be screwed.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
FODA wrote:
I don't understand what you mean by copying luck
I think he means taking someone else's movie of the game and copying his button presses for the specific luck-manipulated sequence verbatim. The "morality" of this kind of copying is a fair question (but I think it's generally considered ok, especially if due credit is given). But as Bisqwit said, such copying would most probably not work because random number generators used in the game are usually affected by *all* the previous input. Thus any change previous to the position where the "copy" would be used would affect the RNG in such a way that the same button presses would not give the same result. I think that there are basically two possible techniques used when luck manipulation is prohibitively laborious to do "by hand": 1) Find and study the RNG code in the game and see how it behaves. Create a piece of code which simulates it to see how it behaves and what keypresses are necessary to generate a certain result. Possibly configure the emulator to show relevant memory values during the run to help with this (I think some emulators support this?). 2) Create a program (=robot) which automatically searches for the desired result.
Former player
Joined: 6/15/2005
Posts: 1711
It's fine though probably not useful, since changing earlier parts of the movie will affect luck later on. Other alternatives you might want to look into would be to study the game code, or to write a bot to solve it. Hope this helps.
Zoey Ridin' High <Fabian_> I prett much never drunk
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
Well, I guess it wouldn't work too well. The run will be similar up to that point, but not identical. Changes include: Taking name ACE, naming rival "He" Buying an extra Pokeball in Pewter City Fighting a different trainer in route north of Cerulean Using Bubblebeam on rival's Pidgeotto in S.S. Anne. So these minor changes would probably have too big an effect to affect that Raichu battle. The first change happens before any luck manipulation happens at all, so this idea is largely useless. Oh well. I had thought the generators only looked at last 10 seconds or something. Guess not.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Chamale wrote:
I had thought the generators only looked at last 10 seconds or something. Guess not.
Random number generators usually don't work on a time-based way, ie. asking the RNG a number at a precise time would give a certain value. Instead, they use a seed value which changes each time a new random number is requested. IOW, a typical RNG looks a bit like
seed = seed*some_calculated_value+some_other_value; return seed;
In other words, it doesn't depend on time but on the number of times the RNG has been called. I suppose that most RNGs in (S)NES games use user input etc to affect those values which are multiplied/added/whatever to the existing seed, which causes it to give different results each time (if different input is given).
Joined: 8/28/2006
Posts: 50
Hmm. What if you luck-manipulated the random generator back to a previous internal state? It wouldn't be possible on all generators but it would work for many. It could waste a lot of time though. Melissa
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Myria wrote:
Hmm. What if you luck-manipulated the random generator back to a previous internal state?
If only you can. In games that take the frame counter into the equation (such as Rockman 1), it is only possible if you happen to match the frame counter within multiples of 256.