User:Blaziken257/Telefang RNG: Difference between revisions

From Wikifang, a definitive guide to Telefang, Dino Device and Bugsite
Jump to navigation Jump to search
No edit summary
m (This was a careless mistake... O_o)
Line 1: Line 1:
In [[Telefang 1]], random events rely on a random number generator. It is generated using the following variables:
In [[Telefang 1]], random events rely on a random number generator. It is generated using the following variables:


* The frame counter, located at <tt>0x3C30</tt> in RAM. This is an 8-bit number, and it increments by 1 for every frame that passes (1 frame = 1/60 second). However, it temporarily freezes in certain situations, mainly when the game has to load screens. The frame counter makes random actions frame dependent.
* The frame counter, located at <tt>0xC3C0</tt> in RAM. This is an 8-bit number, and it increments by 1 for every frame that passes (1 frame = 1/60 second). However, it temporarily freezes in certain situations, mainly when the game has to load screens. The frame counter makes random actions frame dependent.
* Seed 1, located at <tt>0xC41F</tt> in RAM. This value is also an 8-bit number, and it changes every time a random event occurs, and its value depends on the current value of the frame counter, as well as the current values of both seeds.
* Seed 1, located at <tt>0xC41F</tt> in RAM. This value is also an 8-bit number, and it changes every time a random event occurs, and its value depends on the current value of the frame counter, as well as the current values of both seeds.
* Seed 2, located at <tt>0xC420</tt> in RAM. This 8-bit value functions similarly to Seed 1, although it influences the randomly generated number more than Seed 1.
* Seed 2, located at <tt>0xC420</tt> in RAM. This 8-bit value functions similarly to Seed 1, although it influences the randomly generated number more than Seed 1.

Revision as of 09:48, 31 January 2012

In Telefang 1, random events rely on a random number generator. It is generated using the following variables:

  • The frame counter, located at 0xC3C0 in RAM. This is an 8-bit number, and it increments by 1 for every frame that passes (1 frame = 1/60 second). However, it temporarily freezes in certain situations, mainly when the game has to load screens. The frame counter makes random actions frame dependent.
  • Seed 1, located at 0xC41F in RAM. This value is also an 8-bit number, and it changes every time a random event occurs, and its value depends on the current value of the frame counter, as well as the current values of both seeds.
  • Seed 2, located at 0xC420 in RAM. This 8-bit value functions similarly to Seed 1, although it influences the randomly generated number more than Seed 1.
  • Seed sum, the 8-bit sum of the two seeds, located at 0xC400 in RAM. This is the randomly generated number, most directly used to determine random events.

Seed calculation

Note: Original thread here: http://s15.zetaboards.com/Tulunk_Village/topic/6967791/1/

First, the game takes the current value of the frame counter and uses a formula to calculate a new 16-bit number, which is later added to the seeds.

F = (Frame counter * 256) + ((int(((Swap nibbles(Frame counter) + 1) mod 256) / 2) + 135) mod 256)

Next, the game calculates a number based on the current value of the two seeds. This formula is simpler:

S = Seed 1 * 256 + Seed 2

To obtain seed 1:

Seed 1new = ((F+S) mod 256)

To obtain seed 2:

Seed 2new = (int(((F+S) mod 65536)/256)) xor ((F+S) mod 256)

The seeds are then added together (reduced to 8 bits), and this is the randomly generated number.

Random events

Wild Denjuu

Species

For more information, see one of these pages.

Random number range Probability Denjuu Group
0-24 10% Denjuu 4
25-75 20% Denjuu 3
76-152 30% Denjuu 2
153-255 40% Denjuu 1

Level

Random number range Probability Level offset
0-63 25% +1
64-127 25% -1
128-255 50% 0

Personality

Random number range Probability Personality
0-19, 240-255* 14% 0 - のんびり
20-39 8% 1 - ちょーのんびり
40-59 8% 2 - あわてもの
60-79 8% 3 - ちょーあわてもの
80-99 8% 4 - わがまま
100-119 8% 5 - ちょーわがまま
120-139 8% 6 - おくびょう
140-159 8% 7 - ちょーおくびよう
160-179 8% 8 - おこりんぼ
180-199 8% 9 - ちょーおこりんぼ
200-219 8% 10 - りちぎ
220-239 8% 11 - ちょーりちぎ

Battle events

Move accuracy

(<0xD597>/8 + 245 - <0xD49B>/2)/256

Critical hits

Random number range Probability Effect
0-15 6.25% Critical hit!
16-255 93.75% Regular hit

Damage calculation

Added effects of moves

Status effects

Personality flaws

More research needed!

For some personalities, including 0 (のんびり), 1 (ちょーのんびり), 2 (あわてもの), 3 (ちょーあわてもの) (late to arrive), 6 (おくびょう), 7 (ちょーおくびよう) (prone to run away), 8 (おこりんぼ), and 9 (ちょーおこりんぼ) (attacking on its own):

Random number range Probability Effect
Probability: ((FD*2+55) mod 256)/256
When FD = 1:
0-56 22% Act normal
57-255 78% Misbehave
When FD = 100:
0-254 99.6% Act normal
255 .4% Misbehave

For other personalities, including 4 (わがまま) and 5 (ちょーわがまま) (refusing to attack):

Random number range Probability Effect
Probability: ((FD+155) mod 256)/256
When FD = 1:
0-155 61% Act normal
156-255 39% Misbehave
When FD = 100:
0-254 99.6% Act normal
255 .4% Misbehave

Notes:

  • In both cases, due to an oversight, when FD = 100, there is a 1/256 chance that the Denjuu will misbehave, which occurs when the random number comes up as 255. This is similar to the 99.6% accuracy glitch in early Pokémon games.
  • There is a glitch that makes it possible to make the Denjuu's FD exceed 100. Since the formulas are not meant for the FD to exceed 100, an integer overflow glitch occurs, making the probability of the Denjuu acting normal very low.

AI

Target selection

Move selection

Escaping

More research needed!

When 0xD504 <= 0xD546 (note: these addresses' behavior are unknown, although both seem to always be 0 before battling):

Random number range Probability Effect
0-199 78% Unable to escape
200-255 22% Able to escape

When 0xD504 > 0xD546 (note: these addresses' behavior are unknown, although both seem to always be 0 before battling):

Random number range Probability Effect
0-84 33% Unable to escape
85-255 67% Able to escape

Note: In some battles, particularly where a boss or other NPC is fought, the RNG is not invoked, and the player will never be able to escape.

Denjuu giving out number

If player does not yet have any other befriended Denjuu of the same species:

Random number range Probability Effect
0-152 60% Denjuu offers number
153-255 40% Denjuu does not offer number

If player has at least one other befriended Denjuu of the same species:

Random number range Probability Effect
0-15 6.25% Denjuu offers number
16-255 93.75% Denjuu does not offer number