A brief summary about Initial Seeds mechanics in 6th Generation

INTRODUZIONE

Quando entrate nel gioco dei valori si combinano per determinare l’Initial Seed, punto di partenza da cui l’algoritmo inizierà a generare altri numeri esadecimali che decideranno le caratteristiche dei Pokémon incontrati. Conoscendo la formula matematica alla base e il Seed iniziale ottenuto è possibile prevedere le peculiarità delle creature, e riuscire quindi a catturarle con IVs altissime o cromatiche.

Gli elementi che caratterizzano la formazione degli Initial Seeds sono due:

Date/Time: La data in cui si preme A sulla schermata con il “logo del gioco”.
Save Variable (o Save Parameter): È un valore esadecimale che cambia ogni volta che viene salvata la partita.

La manipolazione dell’Initial Seed nei giochi di 6ª generazione è possibile unicamente tramite Citra, il quale offre una completa personalizzazione dell’RTC dalle impostazioni generali dell’emulatore. A differenza della console Nintendo 3DS, non tutti gli Initial Seeds saranno ottenibili: questo accade perché su Citra i ms dell’RTC sono fissati a 0.

Su console invece è quasi impossibile manipolare a proprio piacimento gli Initial Seeds, infatti Data e Ora del sistema non possono essere forzate ad assumere un valore fisso. Inoltre il 3DS tiene conto dei ms, i quali contribuiscono a determinare il Seed iniziale ottenuto quando si premerà il tasto A sulla schermata con il logo del gioco. A causa dell’elevata velocità dei millisecondi si tratta quindi di una situazione molto inconsistente dal punto di vista pratico.

RICERCA DEI SEEDS

Aprite il 3DSTimeFinder e per prima cosa impostate il vostro Profilo inserendo i Parametri relativi alla versione di gioco che state utilizzando, poi cliccate sull’opzione adeguata sotto la voce Gen 6 (questo dipende dal tipo di Pokémon che desiderate ottenere, comunque è indicato nelle guide). Configurate la scheda e avviate la ricerca, poi scegliete una Spread e prendete nota dell’Initial Seed associato ad essa.

Grazie a questo dato si potranno raggiungere Spreads con IVs competitive (e addirittura cromatiche) senza dover avanzare molti Frames, cosa che riduce i lunghi tempi d’attesa. È proprio questo il vero vantaggio per cui usare l’emulatore Citra piuttosto che la console Nintendo 3DS.

Attenzione: La ricerca mirata degli Initial Seeds è consigliata soprattutto per situazioni in cui il Pokémon che volete ottenere non ha IVs fissate a 31, e che quindi risulta difficile da ottenere con buone IV Spreads. Un classico esempio fa riferimento ad alcuni Eventi, o più in generale ai Pokémon selvatici. Il procedimento descritto risolverà il problema legato a questi casi particolari.

CALIBRAZIONE DELLA SAVE VARIABLE

Ora è necessaria una fase di calibrazione per manipolare la “Save Variable”, un parametro che influisce sull’ottenimento dell’Initial Seed. Prima di procedere, assicuratevi che l’RTC del Citra sia configurata correttamente:

Citra Canary » Emulazione » Configura » Sistema » Clock & Startup time

Selezionate Fixed Time dal menù a tendina di fianco alla voce “Clock” e segnatevi i dati contenuti nella casella Startup time, poi avviate il gioco. Fate partire lo Script CitraRNG tramite il pulsante Connect e arrivate fino alla schermata che mostra il logo introduttivo, dopodiché mettete in pausa l’emulatore con il tasto \ al Frame che vi è più comodo.

Nota: Annotare i valori dell’RTC del Citra è importante perché serviranno negli step successivi. È possibile svolgere questa procedura anche in un secondo momento, ma è consigliato farlo subito così da evitare eventuali errori.

Nel caso qui trattato ho messo il gioco in pausa al Frame 300. Tenete premuti in contemporanea i tasti A + \ per qualche istante, in modo da proseguire oltre la schermata con il logo introduttivo al Frame da voi scelto. Infine togliete la Pausa all’emulatore premendo Ctrl + A.

Aprite il G6SeedtoTime e compilatelo con i dati richiesti inserendo il Frame utilizzato per la calibrazione, l’Initial Seed ottenuto e la Save Variable indicata dallo script.

In output sarà mostrato il Base Time relativo al vostro salvataggio: nell’esempio proposto corrisponde a 9A6F1C27.

A questo punto aprite il 3DSRNGTool e cliccate su Tools, poi selezionate Misc. RNG Tool e dal menù a tendina scegliete l’opzione G6 MT. Configurate la scheda come sotto:

Seed: Compilate questa casella con l’Initial Seed ottenuto durante la calibrazione.
Frame: Impostate 26 come Starting Frame nella casella di sinistra e 20000 come Max Frame in quella di destra.
Target Seed: Inserite l’Initial Seed che volete ottenere.
Base Time: Specificate il Base Time calcolato in precedenza.

Nota: Ricordatevi di selezionare la voce Save Par. e spuntare la casella relativa alla versione di gioco che state utilizzando (XY/ORAS).

Una volta compilata la finestra di dialogo cliccate su Calculate. Quando il 3DSRNGTool avrà finito di cercare i possibili Frames, sceglietene uno e segnatevi il Rand# su un foglio di testo.

SAVE VARIABLE RNG

Lo scopo di questo passaggio è manipolare il valore della Save Variable (detta anche Save Parameter) affinché questo ci permetta di ricadere sull’Initial Seed desiderato.

Aprite quindi il menù ed entrate nella schermata in cui vi verrà chiesto di salvare i dati di gioco. Posizionatevi con il cursore sull’opzione “Sì” e raggiungete uno dei Frames indicati dal programma prima di confermare. Fatto questo, premete in contemporanea i tasti A + \ per qualche istante ed infine togliete la Pausa all’emulatore premendo Ctrl + A.

In questo caso la Save Variable ottenuta è 0F5257A9, visualizzabile anche tra i risultati trovati dal 3DSRNGTool.

Attenzione: Se salvando il gioco al Frame corretto ottenete un valore Rand# diverso da quello indicato dal programma, ripetete una seconda volta la procedura fermandovi su un Frame dello stesso tipo. Quindi se avete utilizzato un Frame dispari ripete il processo con un altro Frame dispari (e viceversa).

Adesso mettete in pausa il gioco, tornate alla schermata del G6SeedtoTime e compilatela con le informazioni richieste. Inserite quindi il nuovo Save Parameter (o Save Variable) e i dati relativi all’RTC ricavati nella calibrazione.

Nell’esempio proposto ho inserito 0F5257A9 come Save Parameter e 2019-12-14T 16:29:47 nei campi dell’RTC. Il nuovo valore dell’RTC ottenuto in output corrisponde a 2019-12-08T 23:33:43, associato ad un Frame di 324.

INITIAL SEED

Per concludere copiate ed incollate questo nuovo valore dell’RTC nelle configurazione del Citra. Riavviate il gioco e proseguite fino alla schermata con il logo introduttivo, poi avanzate il Frame fino al Target indicato dal programma. Infine tenete premuti in contemporanea i tasti A + \ per qualche instante.

Se avete fatto tutto correttamente otterrete l’Initial Seed desiderato. Nel caso qui trattato corrisponde a 8C5F6CC0.

PROBLEMATICHE

A volte potrebbe accadere che l’Initial Seed ottenuto non corrisponda a quello desiderato: in questo caso è necessario ripetere il procedimento considerando RTC e/o Save Variable diverse. Ciò è la conseguenza di un’imprecisione del programma, unita a quella dell’emulatore Citra.