Home Emulatori Rilasciato GimliDS v1.6: Miglior sincronizzazione a 50Hz, audio SID ottimizzato e...

[Scena DS] Rilasciato GimliDS v1.6: Miglior sincronizzazione a 50Hz, audio SID ottimizzato e compatibilità ampliata

54
0

Dopo averci fatto divertire con l’aggiornamento precedente (quello in cui aveva recitato mezzo alfabeto), stavolta il developer wavemotion-dave è andato dritto al sodo pubblicando la versione 1.6 di GimliDS, l’emulatore del Commodore 64 per console DS, DSi e varianti come XL/LL.

Nato come evoluzione di FrodoDS, il progetto continua a richiedere ottimizzazioni profonde per garantire fluidità, fedeltà e compatibilità, soprattutto considerando la differenza strutturale tra il C64 originale e le console Nintendo.

La novità più evidente introdotta in questa versione è il nuovo “50Hz True Sync mode”: in pratica l’emulatore forza il refresh del DS da 60 Hz a 50 Hz e sincronizza perfettamente il tutto, ottenendo un’immagine quasi completamente priva di tearing, molto più vicina a quella di un vero monitor PAL dell’epoca.

Tra le aggiunte più gradite c’è finalmente un sistema di Preferiti: quando si è nella schermata di selezione dei giochi, basta premere SELECT per mettere “Like” o “Love” a un titolo, così da ritrovare subito i classici preferiti senza dover scorrere ogni volta l’intera lista.

Sotto il cofano è stato fatto un lavoro enorme: la precisione del timing della CPU è stata ulteriormente affinata (soprattutto per i famosi “borrowed cycles” e i cicli del floppy), tant’è che molti giochi che prima avevano problemi ora girano correttamente.

Anche l’emulazione del chip SID è stata migliorata, con un netto salto di qualità audio sul DS Lite e la correzione di un bug fastidioso che affliggeva il DSi.

L’interfaccia di configurazione è stata completamente riscritta: tutte le impostazioni sono state resettate (quindi al primo avvio dovrete riconfigurare un po’), ma in cambio ora è molto più comoda: tenendo premuto il D-Pad si possono cambiare rapidamente le mappature dei tasti, e premendo si torna alle impostazioni di fabbrica solo per quel gioco specifico.

Sono stati aggiunti anche due nuovi parametri di regolazione fine (CIA timer e FLOPPY timer) che risolvono i problemi di compatibilità di titoli ostici come Flying Shark, Mr. Heli o Dragon Wars.

Per chi ama Turrican, arriva un’altra bella notizia: il primo capitolo ora funziona, basta tenere premuto SELECT per un paio di secondi nella schermata del titolo per superare il blocco iniziale.

Sono stati corretti crash improvvisi su alcuni caricamenti da disco (addio “guru meditation”), sistemati piccoli dettagli grafici delle icone dei dischi e limati altri millisecondi per guadagnare qualche frame extra di fluidità.

Insomma, GimliDS continua a essere un piccolo miracolo di programmazione e, aggiornamento dopo aggiornamento, si avvicina sempre di più a quell’esperienza “perfetta” del Commodore 64 su una console che, sulla carta, non dovrebbe nemmeno riuscire a farlo girare decentemente.

File BIOS

Per poter eseguire correttamente questo emulatore, è necessario disporre dei file BIOS originali del Commodore. Questi file dovranno essere inseriti nelle cartelle /roms/bios oppure /roms/c64 e rinominati esattamente come segue:

  • KERNAL.ROM 8K con CRC32=dbe3e7c7 (901227-03)
  • BASIC.ROM 8K con CRC32=f833d117 (901226-01)
  • CHAR.ROM 4K con CRC32=ec4272ee (901225-01)
  • 1541.ROM 16K con CRC32=899fa3c5 (251968-03)

Controlli

  • + – Ridimensiona lo schermo nelle direzioni X e Y.
  • + – Sposta lo schermo nelle direzioni X e Y.
  • – Invia il celebre comando LOAD "*",8,1 (assicurarsi che l’emulatore si trovi al prompt READY).
  • – Cambia tra porta 1 e porta 2 del joystick.
  • – Direzioni del joystick.
  • è normalmente associato al FUOCO ma può essere rimappato nelle impostazioni.
  • è normalmente associato allo SPAZIO ma può essere rimappato.
  • è normalmente associato al tasto INVIO ma può essere rimappato.
  • è normalmente associato a “Joy Up” per facilitare i salti nei giochi, ma può anch’esso essere rimappato.

Utilizzo dell’emulatore

Per utilizzare GimliDS, è sufficiente avviare il file GimliDS.NDS sulla console Nintendo DS, DSi, XL o LL. Si noti che, se l’emulatore viene eseguito da una flashcard R4 (o simile), verrà attivata la modalità di compatibilità, che limita la CPU a 67 MHz.

In questo caso, GimliDS sarà comunque funzionante, ma sarà necessario un leggero frameskip per garantire una velocità di gioco accettabile.

Al contrario, se l’emulatore viene avviato da scheda SD su DSi/XL/LL tramite Twilight Menu++ o Unlaunch, la CPU lavorerà a 134 MHz, permettendo di giocare senza frameskip e con un audio notevolmente migliorato.

All’avvio dell’emulatore (purché i file BIOS siano nella posizione corretta), verrà mostrata l’interfaccia del CBM BASIC con il celebre prompt READY.

Da qui, si può utilizzare l’icona del disco per caricare un gioco in formato .d64. Una volta montata l’immagine, si torna alla schermata principale dell’emulazione (uscendo dal menu) e si preme il tasto per digitare automaticamente il comando: LOAD "*",8,1 e avviare il gioco con RUN.

Il tasto C= (in basso a destra) consente di configurare il gioco, salvare o caricare stati di gioco e altro.

Importante familiarizzare anche con il tasto , che permette di scambiare le porte del joystick. Questa funzione sarà usata frequentemente, poiché molti giochi utilizzano porte diverse (e a volte anche i loader o i cracker le cambiano).

Dato che la risoluzione dello schermo del DS (256×192) non corrisponde a quella del Commodore 64 (320×200 più bordi), sarà necessario utilizzare i tasti e insieme a  per regolare scala e posizione dell’immagine. Una volta trovata la configurazione ideale, sarà salvata automaticamente per quel gioco.

Si consiglia inoltre di rimappare un tasto del DS su “PAN UP” o “PAN DOWN”, per spostare temporaneamente lo schermo di 16 pixel e visualizzare elementi come punteggi o indicatori, senza sacrificare la risoluzione durante il gioco.

Disponibile anche una funzione di zoom temporaneo 1:1: assegnando un tasto alla voce “TOGGLE ZOOM” nelle impostazioni, sarà possibile attivare/disattivare lo zoom per facilitare la lettura dei testi.

In modalità zoom, parte dello schermo potrà risultare tagliata, ma è possibile spostarsi lateralmente con i tasti e . Premendo nuovamente il tasto assegnato, si tornerà alla visualizzazione precedente.

Infine, alcuni giochi utilizzano loader personalizzati che richiedono l’attivazione della modalità True Drive. Attenzione: in questa modalità il caricamento dei dischi avviene alla velocità reale del Commodore 1541, ovvero molto lentamente (anche 2-5 minuti).

Se il gioco la richiede, è l’unico modo per farlo funzionare. Si consiglia di creare uno stato di salvataggio una volta caricato il gioco, per evitare attese future.

Supporto per Cartucce

Pur essendo un emulatore orientato principalmente ai giochi su disco, GimliDS supporta anche le cartucce più comuni, fino a una dimensione massima di 1MB. I tipi di cartucce compatibili includono:

  • Standard 8K
  • Standard 16K
  • Super Game Carts fino a 64K
  • Dinamic fino a 128K
  • C64 Games System fino a 512K
  • Ocean fino a 512K
  • Magic Desk fino a 1MB
  • Easy Flash fino a 1MB, con 256 byte di RAM

Questo garantisce la compatibilità con un’ampia varietà di giochi su cartuccia. Si consiglia di esplorare l’archivio OneLoad64, che raccoglie molte di queste versioni in formato pronto all’uso.

fedeltà dell’emulazione

L’emulatore non è perfetto. GimliDS utilizza una tecnica chiamata emulazione per linea, che consiste nell’eseguire una linea alla volta di CPU, grafica VIC, audio SID, e così via. Nel formato PAL, ci sono 312 scanline, di cui poco più di 200 sono effettivamente visibili sullo schermo.

Questo approccio è piuttosto comune tra molti emulatori (inclusi quelli dello stesso autore), ma non garantisce un’accuratezza assoluta, in quanto alcuni effetti del C64 dipendono da modifiche che avvengono all’interno di una singola scanline.

Molti giochi non sfruttano questi effetti avanzati, e di conseguenza funzionano quasi perfettamente su GimliDS.

Tuttavia, alcuni giochi fanno un uso parziale o esteso di questi “trucchi” temporali, il che può causare piccoli glitch grafici (come sfarfallii o righe instabili in alto o in basso allo schermo), problemi visivi più gravi o audio/musica compromessi.

In attesa di miglioramenti futuri dell’emulatore (senza però arrivare a una ciclo-accuratezza totale, che comprometterebbe la velocità) si possono sfruttare alcune soluzioni, tra cui l’opzione “CPU Adjustment” nelle impostazioni, configurabile per singolo gioco.

Particolarmente utile è l’impostazione CPU CYCLES adjustment, che permette di variare il numero di cicli CPU disponibili per ogni scanline, da -9 a +9, con il valore predefinito su 0 (nessuna modifica).

Questo aiuta a riequilibrare il sincronismo tra CPU, VIC e SID, che possono andare leggermente fuori fase man mano che il raggio di scansione percorre lo schermo.

Va usata con cautela: un valore troppo alto o troppo basso può causare instabilità o crash del gioco.

In pratica, se un gioco non mostra glitch grafici, non è necessario intervenire. Ma, ad esempio, nel caso di Gauntlet, dove la “G” del secondo giocatore in basso a sinistra lampeggia, si può ridurre il problema impostando CPU CYCLES a +2 o +3.

Con +5 il difetto scompare del tutto e l’immagine risulta stabile. La regola è: modificare solo quanto basta per eliminare l’anomalia, senza esagerare.

In generale:

  • Se il problema grafico è in alto nello schermo, provare con valori negativi.
  • Se il problema è in basso, provare con valori positivi.

Modifiche specifiche per alcuni giochi

Per ottenere le migliori prestazioni possibili di alcuni giochi popolari sul buon vecchio Nintendo DS, si consiglia di applicare i seguenti accorgimenti:

  • Gauntlet – impostare CPU CYCLES a +5 per eliminare i glitch grafici sulla lettera “G”.
  • Bruce Lee – impostare CPU CYCLES a +4 per ridurre i difetti grafici legati alle scanline.
  • Turrican I – impostare BAD CYCLES a -6. Ci saranno alcune corruzioni grafiche nella schermata del titolo, ma il gioco si presenterà e funzionerà correttamente (e soprattutto sarà possibile avviarlo!).
  • Turrican II – richiede True Drive attivato (oppure va caricato da cartuccia).
  • Lode Runner – richiede True Drive attivato (oppure va caricato da cartuccia).
  • LED Storm – impostare CPU CYCLES a +4 per eliminare un difetto grafico nella parte alta dello schermo.

Changelog

  • Nuova modalità True Sync a 50Hz che cambia il refresh nativo del DS da 60Hz a 50Hz e sincronizza l’emulazione per offrire un’esperienza quasi priva di tearing.
  • Nuovo sistema Preferiti implementato — premi SELECT nella selezione giochi per alternare LIKE/LOVE.
  • Maggiore accuratezza nel timing della CPU per “cicli presi in prestito”, cicli del floppy, ecc.. più giochi funzionano correttamente.
  • Migliorato il timing dell’emulazione SID: il DS-Lite ottiene un netto miglioramento audio e su DSi è stato risolto un bug per un rendering sonoro più preciso.
  • Rivisitazione completa delle opzioni di configurazione: tutte le impostazioni sono state resettate con questa release.
  • Le modifiche alla configurazione permettono di tenere premuto il D-PAD per effettuare modifiche rapide, ad esempio alle mappature dei tasti.
  • Premendo nella configurazione è possibile ripristinare i valori di fabbrica solo per il gioco in uso.
  • Nuova regolazione del timer CIA per piccole modifiche richieste da alcuni giochi (es. Flying Shark, Mr. Heli).
  • Nuova regolazione del timer del FLOPPY per piccole modifiche richieste da alcuni giochi (es. Dragon Wars ora funziona).
  • L’aggiustamento della CPU è stato riportato a +0 (il +3 era troppo aggressivo per alcuni giochi, come il nuovo Sherwood!).
  • Turrican I ora funziona: premi e tieni premuto SELECT sul DS per 1–2 secondi per superare la schermata del titolo.
  • Risolto l’errore “guru meditation” (crash) del DS durante alcuni caricamenti da disco (risolve problemi di caricamento in giochi come Barnsley Badger).
  • Piccoli ritocchi alle grafiche dell’icona del disco durante lettura/scrittura.
  • Leggera ottimizzazione per guadagnare un frame di performance.
  • Numerosi altri piccoli miglioramenti.

Download: GimliDS v1.6

Download: blank.d64

Download: Source code GimliDS v1.6