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
No edit summary
Line 99: Line 99:
| 60-79
| 60-79
| <span class="explain" title="20/256 or 7.8125%">8%</span>
| <span class="explain" title="20/256 or 7.8125%">8%</span>
| 3 - ちょーあわても
| 3 - ちょーあわてもの
|-
|-
| 80-99
| 80-99
Line 138: Line 138:
=== Critical hits ===
=== Critical hits ===
=== Damage calculation ===
=== Damage calculation ===
=== Added effects of moves ===
=== Status effects ===
=== Personality flaws ===
=== Personality flaws ===
<!--14B38 / ?????-->
<!--154BE (0-3) / 13746 (4-5) / 16D0C (6-7) / 14B38 (8-9) -->
''More research needed!''
''More research needed!''


For some personalities, including 8 (おこりんぼ) and 9 (ちょーおこりんぼ) (attacking on its own sometimes):
For some personalities, including 0 (のんびり), 1 (ちょーのんびり), 2 (あわてもの), 3 (ちょーあわてもの) (late to arrive),  6 (おくびょう), 7 (ちょーおくびよう) (prone to run away), 8 (おこりんぼ), and 9 (ちょーおこりんぼ) (attacking on its own):
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 172: Line 174:
|}
|}


For other personalities:
For other personalities, including 4 (わがまま) and 5 (ちょーわがまま) (refusing to attack):
{| class="wikitable"
{| class="wikitable"
|-
|-

Revision as of 14:39, 21 October 2011

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

  • The frame counter, located at 0x3C30 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

Critical hits

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

Denjuu giving out number