A brief summary about Initial Seeds mechanics in GameCube games

INTRODUZIONE

Nel Nintendo GameCube l’Initial Seed viene determinato in un breve lasso di tempo durante il caricamento dei giochi, in base a Data e Ora in cui sono avviati. Ciò ne impedisce la manipolazione sulla console, ma utilizzando un emulatore è possibile fissare queste variabili tramite RunAsDate e prevedere quale valore sarà generato.

CALIBRAZIONE

Per prima cosa è importante conoscere l’Initial Seed generato in data 1 Gennaio 2000 alle ore 00:00:00. Questo è il primo valore possibile prodotto dal gioco, detto anche Origin Seed nel PokéFinder.

Grazie all’Origin Seed ricavato da questa calibrazione si potranno determinare gli Initial Seeds ottenibili in qualsiasi Data e Ora di avvio. Infatti l’algoritmo di generazione è di tipo ciclico: conoscendo il valore di base si può risalire con facilità ad ogni possibile situazione.

Utilizzate il RunAsDate per far partire il Dolphin [Lua Core] nella Data e Ora di base. Di seguito trovate una lista delle funzioni del programma nell’ambito dell’RNG:

Application to run: Specificate il programma che volete avviare tramite il tasto “Browse”.
Date/Time: Selezionate “Absolute date/time” ed impostate Data e Ora tramite le apposite caselle di dialogo.
Parameters: Questa funzione permette di eseguire determinati programmi nella loro versione di “debug”.
Immediate Mode: Da attivare in alcuni casi particolari per cui è necessario che il programma sostituisca immediatamente Data e Ora al software scelto. Nel readme troverete una descrizione più accurata.

Nota: Le voci “Move the time forward according to the real time” e “Return to the current date/time after…” non vanno selezionate, in quanto l’ottenimento dell’Initial Seed risulterà più semplice qualora RunAsDate manterrà fissata Data e Ora prestabiliti per tutta la durata d’esecuzione dell’emulatore.

Nota: Come riportato anche nelle patch notes della versione 1.35, il programma notificherà un messaggio di errore all’utente qualora si cercherà di eseguire programmi in 32bit utilizzando la versione a 64bit di RunAsDate e viceversa.

Aprite il Dolphin [Lua Core] ed avviate il gioco, dopodiché mettete in Pausa l’emulatore sulla schermata con il logo Nintendo® e caricate anche il Lua Script. Vi ricordo che il Lua Script vi permette di visualizzare l’Initial Seed e il Current Seed. Si carica in questa maniera:

Dolphin » Strumenti » Lua Script

A questo punto selezionate il file .lua corretto dal menù a tendina e cliccate su Start.

Segnatevi il dato relativo all’Initial Seed su un foglio di testo e passate al prossimo step.

GAMECUBE RTC

Aprite il PokéFinder e cliccate “GameCube” sotto la voce Gen 3. Configurate la scheda e avviate la ricerca, poi scegliete una Spread e cliccateci sopra con il tasto destro: premendo su “Generate times for seed” vi ritroverete nel GameCube RTC.

Origin Seed: Specificate il Seed ricavato dalla calibrazione.
Target Seed: Questo campo sarà compilato in automatico col Seed relativo alla vostra Spread.
Min/Max Advances: Impostate il numero minimo e massimo di avanzamenti che volete effettuare.
End Date: Selezionate il range temporale entro cui trovare dei risultati.

Una volta compilata la finestra di dialogo cliccate su Search. Quando il PokéFinder avrà finito di cercare i possibili Seeds, sceglietene uno e appuntatevi la data sotto la colonna Time.

INITIAL SEED CON RUNASDATE

Ora inserite Data e Ora indicati dal programma in RunAsDate, poi aprite di nuovo il Dolphin. Nel caso qui trattato:

Data: 1 Gennaio 2000
Ora: 17:52:33

Completato il procedimento dovreste aver ottenuto l’Initial Seed che risulta dal GameCube RTC.

Nota: Se il valore ottenuto è diverso da quello desiderato, andate nelle impostazioni del Dolphin ed attivate l’opzione Abilita Dual Core (Generale). Infine ripetete il processo.