Author Topic: [FF8] Get Zell card on 2nd try ?  (Read 2937 times)

Beuj

  • *
  • Posts: 8
    • View Profile
[FF8] Get Zell card on 2nd try ?
« on: 2016-09-04 11:01:03 »
Hey, I'm surprised a topic has not been opened yet about that japanese website which gives you a way to get the Zell card on the second try (but maybe there is one and I haven't found it?).
I would like to give some information I've found about that, to help finding a way to use this thing (for French explanations, have a look further in this message).

English :

Link to the japanese website : http://www.geocities.jp/agnesboulangerchan/psff8/research/#zell-card
Link to get the script which let you get a rare card on 2nd try : http://www.geocities.jp/agnesboulangerchan/psff8/research/ff8_zellmama.rb
Link to the video which shows how it works : https://drive.google.com/file/d/0B20JDm6isEeOcnprVkJXMTBVck0/view?usp=sharing
This script uses Ruby, which you can get there : https://www.ruby-lang.org

1. So, once you get the script, you would like to use it, right ? You have to open it with an argument, and this argument depends on the second card in the hand of your opponent during the "early Quistis" strat. Only a few possibilities are allowed, and you can get them all on these two videos :
Luzbelheim video : https://www.youtube.com/watch?v=Vi5b9pFz7Fg
Pingval video : https://www.youtube.com/watch?v=NZepglJrzdI
Pingval is the owner of the japanese website. He found three more possibilities than Luzbelheim which can be used for the trick.

So, depending of that second card in the opponent hand, you have to add this argument :
1 (if the card is Elastoid / Protesis)
2 (if it's Malboro / Xylomid)
3 (if it's Wedge)
16 (if it's another card, and then you will have to enter the ID of that card)

So the command line should looks like this :
Code: [Select]
ruby /{path}/ff8_zellmama.rb 1
Then, the script is initialized with the right seed. It seems like the seed wich is used to generate the RNG is the value of the timer at it's first use. So, if you have the seed, you can get the further values of the RNG with the formula :
RNG(frame+1) = ((RNG(frame) * 0x10dcd + 1) mod 0xffffffff)
In the early Quistis strat', that initialization is done when you choose "Play" in the card game (except if you've done a battle before that). That's why the script needs you to enter the second card in the hand of the opponent : it's the first use of the RNG, so it can be used to determine the frame you chose "Play", and therefore the seed.

2. After that, the script is waiting for a list of 5 values of 4 digits each. These values represents the card played by Ma Dincht at the first game. To read the number and use it properly in the script, you have to read them on the card from top to down, and left to right. For example, if Ma Dincht plays Behemoth / Kanibal first, you will see that on the card :
  3
7  6
  5
So the number will be : 3765

To enter the numbers, you can type them seperated by a point. So you'll have something like this :
Code: [Select]
3765.4655.4245.6762.3345(which means Ma Dincht played Behemoth/Kanibal, then Adamantoise/Ao, then Grendel/Feng, then Wedge&Biggs, then Belhelmel/Koatl)
Then, press enter.

It looks like you can use other typo rules, but I'm not familiar with them ><'

3. After that, the script will be waiting for your order to begin the timer. You'll have to press enter when you accept to play with Ma Dincht for the second time (before the Triple Triad screen with "Play", "Cancel"). It will triggered the timer. At the beginning, the timer will be a countdown : it's the time between the choice of "Yes" and the first frame you can choose "Play". Once the timer is positive, it means you can choose "Play". You will see '*' sliding on a line of dots : it shows the frames where you can get Zell card. So when the * are at the beginning of the line, you'll have Zell card if you choose "Play" at that moment. Actually, you'll have several frames at a row, so it's not so hard to do it. If you miss the first time you can have it, just wait for another.
At the same time you choose "Play", also type enter in the script.

4. Well, that's all for now, and there may be some mistakes remaining. So thank you for fixing the things which need to be fixed ^^ I will also try to do it, and maybe to produce something a little bit easier to use (we will see…).
The script is completely configurable, so you can adapt it to your platform.

French translation :

Lien vers le site japonais : http://www.geocities.jp/agnesboulangerchan/psff8/research/#zell-card
Lien pour obtenir le script qui prédit la Zell card au deuxième essai : http://www.geocities.jp/agnesboulangerchan/psff8/research/ff8_zellmama.rb
Lien vers la vidéo qui montre que ça marche bien : https://drive.google.com/file/d/0B20JDm6isEeOcnprVkJXMTBVck0/view?usp=sharing
Ce script utilise Ruby, qu'on peut obtenir à cette adresse : https://www.ruby-lang.org

1. Pour faire fonctionner le script, il faut rajouter un argument dans la ligne de commande ; cet argument dépend de la seconde carte qui se trouve dans les mains de l'adversaire au moment de l'early Quistis (le duel avec le Fan de Quistis). Il n'y a qu'une poignée de possibilités, et on les trouve toutes sur deux vidéos :
Luzbelheim video : https://www.youtube.com/watch?v=Vi5b9pFz7Fg
Pingval video : https://www.youtube.com/watch?v=NZepglJrzdI
Pingval est le propriétaire du site japonais, il a rajouté des possibilités que Luzbelheim n'avait pas envisagé.

Bon, du coup, selon la seconde carte qui est dans les mains du Fan de Quistis, vous allez rajouter un argument qui sera :
1 (si cette carte est Elastoid / Protesis)
2 (si cette carte est Malboro / Xylomid)
3 (si cette carte est Wedge&Biggs)
16 (si c'est une autre carte, dans quel cas il faudra rajouter son identifiant à la main)

Donc la ligne de commande pour démarrer le script devrait ressembler à quelque chose comme ça :
Code: [Select]
ruby /{path}/ff8_zellmama.rb 1
A ce moment-là, le script est initialisé avec une "graine". Cette graine, semble-t-il, sert à générer toute la suite de la RNG. Donc si on a la graine, on peut prédire ce que deviendra toute la RNG avec la formule :
RNG(frame+1) = ((RNG(frame) * 0x10dcd + 1) mod 0xffffffff)
Cette initialisation de la RNG se produit à la première utilisation du timer qui démarre quand on peut choisir entre "Jouer" et "Annuler" dans la première partie de carte (sauf si on a fait un combat avant). Au moment où on choisit "Jouer", la valeur du timer sert de graine pour la RNG. Et la première utilisation de la RNG après ça est pour déterminer la deuxième carte des mains de l'adversaire ; donc si on connait cette carte, on peut connaître la valeur de la RNG, et donc prédire toute la suite de la RNG ^^

2. Après ça, le script s'attend à recevoir une liste de 5 valeurs de 4 chiffres chacune. Ces valeurs représentent les cartes jouées par Ma Dincht lors de la première partie. Pour lire ce nombre, et l'entrer correctement dans le script, il faut lire les chiffres qui sont sur la carte, de haut en bas et de gauche à droite. Par exemple, si Ma Dincht joue  Behemoth / Kanibal, on va avoir ça sur la carte :
  3
7  6
  5
Donc le nombre à entrer sera : 3765

Pour entrer les nombres dans le script, il faut les taper séparés d'un point. On aura alors quelque chose comme ça :
Code: [Select]
3765.4655.4245.6762.3345(qui veut dire que Ma Dincht a joué Behemoth/Kanibal, puis Adamantoise/Ao, puis Grendel/Feng, puis Wedge&Biggs, et enfin Belhelmel/Koatl)
Ensuite, appuyez sur la touche Entrée.

Il semble qu'il soit possible d'utiliser d'autres règles de typographie pour entrer cette suite de nombres, mais j'ai pas encore bien compris comment ça marche ><'

3. Après ça, le script sera dans l'attente de votre ordre pour démarrer le timer. Il faut alors appuyer sur la touche Entrée au moment même où on dit "Oui" à Ma Dincht pour démarrer une nouvelle partie contre elle. Le timer va démarrer, d'abord à rebours, pour laisser s'écouler le temps avant la première frame où on peut choisir "Jouer". Dès que le timer est dans le positif, des étoiles (*) vont défiler sur une ligne de points. Quand les étoiles sont au début de la ligne, ça veut dire qu'on peut valider "Jouer" afin d'avoir la Zell card. Si vous n'avez pas eu le temps de valider au premier passage des étoiles, il suffit d'attendre le passage suivant ^^
Quand vous validez "Jouer", vous pouvez aussi appuyer sur la touche Entrée pour le script.

4. Ma foi, c'est tout pour l'instant ! Il y a sans doute des erreurs qui trainent un peu partout, je compte sur vous pour m'aider à les trouver et les corriger. J'essayerai aussi de produire un truc un peu plus facile à utiliser.
Le script est entièrement configurable, et doit donc pouvoir s'adapter à d'autres types de plate-forme.

Have fun !! I wish you a good run and a good RNG ^^