I couldn’t find the RNG-table used for field encounters (177 202 238 […] 171 176 012) in the psx emulator memory, so I think it isn’t used for the world map encounters.I filled another RNG-table (099 006 240 […] 199 106 202) with zeros, but there weren’t any significant differences in enemy encounter times, formations and pre-emptive chances. Additionally there were no differences between a normal loading from memory card after a hard reset and the same procedure only with the »zeroed« RNG-table .

So it seems that the encounter formation is done differently (or my methods were wrong). So, how can I determine it? I know that Enemy Lure/Away has an impact (not always) on the encounter formation, if that helps.

That might be something worth looking into especially if it can be manipulated. There are likely multiple RLUTs for enemy encounters. I'd imagine it'd be different for fields and world map, but it might just be a difference in the handling of the encounter mechanic. The one starting with 99 is the battle-related RLUT. Everything in-battle is determined using this including item drops and possibly random requests from animations.

Yeah, when I filled the 99 RLUT with zeros the ATB gauge was always almost full at the beginning.However, I have written a (poor) script to check the emulator memory dump for other tables – where 256 numbers are next to each other – and there was exactly one table.What I’ve forgotten to tell the last time: I’ve tried to find differences between two memory dumps, but even with the same ingame view the differences are huge (I realised just now, that I didn’t synced the sound).

Well, I’m completely out of real ideas (I guess just syncing the sound won’t reduce the huge differences to a sane level). What can I do?

1) Materia -Enemy away -Enemy lure -Pre-emptive equipped on the third character2) Button pushing -up and down (both identical) -left and right -clockwise and counterclockwise rotating view buttons3) Amount of time spend in the last battle (at least in the result screens)

The Enemy away/lure materia can change the amount of battle checks and as a result different battles are possible. The pre-emptive materia can change the encounter itself (don’t know about the checks, haven’t found one, but this is still open).The up and down buttons doesn’t change the amount of battle checks and encounters, which means running with a chocobo up and down won’t change the battle checks and encounter. The left/right and rotating view buttons are almost identical. The difference is that left/right counts towards the battle check. Pushing both button types while not moving the normal character can give different amounts of battle checks and/or enemy encounter. This means just rotating your view or flying left and right with the Highwind can give different encounters.Rotating one to the left (or right – doesn’t matter) and then running up/down will give the same result as running up/down and then before the last up/down button push a rotate of one.The RNG table in the kernel (starting with 099) is not (directly) involved.

I tried to play with memory values obtained by a diff at different times in the battle result screen, but without luck. Trying to get a reasonable difference on the world map failed even with 1 frame per s advance. Thousands of different lines à 16 is just to much.

What could help is a way to get a instant battle. I’ve found the memory value for the Enemy Lure/away, but not for the encounter value. I tried to find the difference between Cosmo area and a forest, but it seems that die encounter value is not stored as a simple hexadecimal conversion.

It seems so DLPB, well at least it contains data of encounter values and encounter formations[1].

I found the danger counter (ps1 German pal: 80116249, partially 80116248 and thus enables instant battles) and the place (80116240) which determines the next battle check. It cycles from 00 to 10. After a battle it is set to 74 (followed by FF FF FF) and so it takes 150 »steps« (different from the animation) for the first battle check.The RNG value changes with each battle check or pushing/rotating left or right. Pushing/rotating once gives nearly the same RNG value as when reaching the second battle check with using only the up and down buttons.

BUT it doesn’t help. According to Terence the RNG look-up table (541 byte) is not static and uses a complicated refreshing routine[2].I tried finding the table with RNG value for the battle check, but without luck. Even without knowing that table, but knowing it is recalculating, could I assume the RNG as fair?

I found the world map table. I know now how the game picks a encounter formation (useful for getting the Mystery Ninja or the right Chocobo at the first try without hacking, but just looking in the memory) and thus why pre-emptive materia can give different battles – e. g. normal battle #1 instead of normal battle #4.

Something which could be more interesting: At least on the world map pre-emptive chances are doubled if a pre-emptive materia is equipped. This means the maximum chance is not 85/256, but 170/256.

This thread feels like blog. The seed for the world map rng look-up table is incremented by 2 every 60 or 64 frames in a certain area. So just standing still gives different encounter outcomes. The exact area is probably determined by x and y values, but the following map should be good enough.

Pre-emptive chances on the field map are not doubled if they are bigger than 16/256.

I guess I was really the only, who was interested in it.To conclude it:

A look-up table (8010AE20 German pal ps1) is created every time the party enters the world map. It is possible to have identical numbers next to each other. At least for reloading, the numbers inside the table are depended on the in-game time. The Seed (8010AE1C/8010AE1D) starts with the last value in the table, which happens to be 08 02 (position 520). The 02 counts how many times the first value has overflown. When the Seed advantages further it jumps to 00 00 and a new look-up table is created.The Seed advantages via three methods. The first method is using the left/right and the view rotating buttons. While both types of buttons increase the Seed by one – doesn’t matter, which vehicle is used – the left/right buttons also increase the Stepscounter by one if there is place to walk by foot/Buggy. The second way is to get a battle check. The third way is to be in the following area. Every ca. 64 frames the Seed increases by two:To reset the Seed a reload or a random world map encounter is necessary.

The Stepcounter (80116240) starts with 74 and it wont increase the danger counter (80116249) till it overflows for the first time (74 FF --> 00 00). It advances by using the movement buttons. After the first overflow it starts cycling from 00 to 10 and after the next overflows a battle check occurs. Every time the party enters the world map the Stepcounter is reset to 74. Entering means after a battle, coming from a field map or reloading. Another way is to get off a vehicle, which resets the counter to E2, hence it is possible to never have an encounter with the buggy.

For the enemy encounter formation I will only state the additional stuff to Terence’s Enemy Mechanic FAQ. At first the Yuffie (in forests) or the Chocobo (everywhere else) battle is checked. After that the pre-emptive check follows. If it is successful, than the next RNG Seed checks for a normal battle instead of a back attack battle.If a pre-emptive materia is equipped, the chances are doubled (128/256 instead of 64/256). This translates into almost halving the chances for getting a special battle from no pre-emptive materia to master pre-emptive materia. The ambush alert halves the chances even further.In North Corel the chances doesn’t add up to 64 but 56. The remaining 8 leads to nothing. There will be no battle and the danger counter is reset to zero.